280 likes | 583 Views
CIS581 Presentation Morphological Operations. Presented by: Xueyan Li Supervised by: Longin Jan Lateckie. Presentation Outline. Terminology and properties of Morphology Operations Structure element Four morphological Principles Iterative Morphological Operations
E N D
CIS581 PresentationMorphological Operations Presented by: Xueyan Li Supervised by: Longin Jan Lateckie
Presentation Outline • Terminology and properties of Morphology Operations • Structure element • Four morphological Principles • Iterative Morphological Operations • Matlab Programs and results images for each operation
Introduction---Morphology Operations • Terminology Morphology:a broad set of image processing operations that process images based on shapes. Morphological operations apply a structuring elements to an input image, creating an output image of the same size. • Properties Morphological operations simplify images, and quantify and preserve the main shape characteristics of objects.
Four morphological principles • Dilation • Erosion • Opening • Closing
Relationship of four operations • Dilation and Erosion are the basic operations, can be combined into more complex sequences. • Erosion and dilation are not invertible operations ---if an image is eroded and dilated, the original image is not re-obtained. • The combination of Erosion and dilation constitutes new operations ----opening and closing. They are the most useful morphological filtering.
Structuring element • Morphological operations can be customized for an application by the proper selection of the structuring element, which determines exactly how the object will be dilated or eroded. • matlab function strel() can create many kinds of structuring element: dish-shaped, diamond-shaped, ball-shaped, square flat linear with length LEN arbitrary flat or a nonflat with the specified neighborhood
Dilation Dilation allows objects to expand, then potentially filling in small holes and connecting disjoint object. Performance: laying the structuring element on the image and sliding it across the image. 1) If the origin of the structuring element coincides with a ‘0’ in the image, there is no change; move to the next pixel. 2) If the origin of the structuring element coincides with a ‘1’ in the images, perform the OR logic operation on all pixels within the structuring element.
original image (above) Matlab programming ---dilation %Read image I = imread(‘ford.tiff'); figure('Name', 'original'); imshow(I); %create structuring elements % 11-by-11 square se1 = strel('square',11); %Apply dilation operation figure('Name', 'Dilate'); Idilate1 = imdilate(I,se1); %Show the result image subplot(1,1,1), imshow(Idilate1), title('11x11 square'); Image after dilation (below)
Erosion Erosion shrinks objects by etching away (eroding) their boundaries. Performance: 1) If the origin of the structuring element coincides with a ‘0’ in the image, there is no change; move to the next pixel. 2) If the origin of the structuring element coincides with a ‘1’ in the image, and any of the ‘1’ pixels in the structuring element extend beyond the object (‘1’ pixels) in the image, then change the ‘1’ pixel in the image to a ‘0’;
original image (above) Matlab programming ---erosion %Read image I = imread(‘ford.tiff'); figure('Name', 'original'); imshow(I); %create structuring elements % 11-by-11 square se1 = strel('square',11); %Apply erosion operation figure('Name', 'Erode'); Ierode1 = imerode(I,se1); %Show the result image subplot(1,1,1), imshow(Ierode1), title('11x11 square'); Image after erosion (below)
Opening Opening consists of an erosion followed by a dilation and can be used to eliminate all pixels in regions that are to small to contain the structuring element. In this case the structuring element is often called a probe, because it is probing the image looking for small objects to filter out of the image.
original image (above) Matlab programming--- opening %Read image I = imread(‘ford.tiff'); figure('Name', 'original'); imshow(I); %create structuring elements % 11-by-11 square se1 = strel('square',11); %Apply the open opration figure('Name', 'Open'); Iopen1 = imopen(I,se1); %Show the result image subplot(1,1,1), imshow(Iopen1), title('11x11 square'); Image after opening (below)
Closing Closing consists of a dilation followed by an erosion and connects objects that are close to each other. It can be used to fill in holes and small gaps.
original image (above) Matlab programming ---closing %Read image I = imread(‘ford.tiff'); figure('Name', 'original'); imshow(I); %create structuring elements % 11-by-11 square se1 = strel('square',11); %Apply close operation figure('Name', ‘Close'); Iclose1 = imclose(I,se1); %Show the result image subplot(1,1,1), imshow(Iclose1), title('11x11 square'); Image after closing (below)
Iterative Morphological Operations We can apply one or several operations to an image iteratively. InputImage ---(apply an operation) outputImage1 ---(apply the operation again) outputImage2 …and so on…..until get your desired image
Original imageafter 1 dilation Matlab program iterative operation of dilation (1) after 5th dilations after inf dilations
Original imageafter 1 dilation Matlab program iterative operation of dilation (2) after 5th dilations after inf dilations
Original imageafter 1 erosion Matlab program iterative operation of erosion (1) after 5th erosions after inf erosions
Original imageafter 1 erosion Matlab program iterative operation of erosion (2) after 5th erosions after inf erosions
Original imageafter 1 opening Matlab program iterative operation of opening (1) after 5th openings after inf openings
Original imageafter 1 opening Matlab program iterative operation of opening (2) after 5th openings after inf openings
Original imageafter 1 closing Matlab program iterative operation of closing (1) after 5th closings after inf closnings
Original imageafter 1 closing Matlab program iterative operation of closing (2) after 5th closings after inf closings
Morphological operations on gray-level image Original imageImage after dilationImage after erosion
My programming files 1. morphor.m 2. bwmorhpr.m If you are more interested in this topic, you can try to play the source code with a updated Matlab. I’m sure a lot of fun there!