Transcript Document
Morphological Processing
Heejune Ahn, SeoulTech
Last updated 2015. May. 19
Outline
Introduction
Operation
binary Image & terminology
Structuring element
Dilation & erosion
Opening & Closing
Application
Boundary Extraction
Connected components Extraction
Region Filling
Skeletonization
1. Introduction
Morphology
Concept
structure
biology
morphology
linguistic
Morphological processing
form
Extract ‘structural’ information
image model = structure + texture(details)
‘simplification’ for easier understanding
Set-theory based
C
Set (image pixels)
Set (image pixels)
Set (structure)
operator
2.Binary image
binary image
Image with two values (1/0, true/false, on/off)
foreground vs background pixel
Object and connected
foreground pixel: value = 1
background pixel: value = 0
connected foreground pixels
4/8 connected
Binary against gray image
No Texture info(variation of values)
interested only in shape, size, location of object
3. Structuring elements
Morphological operation
target pixel <= operation with neighbor pixels
C
Set (image pixels)
Set (image pixels) Set (structuring element)
operator
Structuring elements
size(odd/even), symmetric/not
choice of S.E.
depends on application
Main topics in M.P.
4. Dilation & erosion
Dilation & erosion
All other operation is defined by these two.
Properties
Dilation
Erosion
definition 1 if any neighbor = 1
0 o. w.
0 if any neighbor = 0
0 o. w.
visual
BG pixels remain if the
structure element is
included
FG pixels remain if the structure
element is included
effects
expansion of the object
shrink of the object
illustration
Fully
connected
FGs only
SURIVE!
Fully
connected
BGs only
SURIVE!
5. Dilation & Erosion in MATAB
imerode(bw, se) & Imdilate(bw, se)
bw (b/w image), se (structuring element)
Return result b/w image
structuring element defintion
MATLAB array
E.g. se = [0 1 0; 1 1 1; 0 1 0 ]
strel(‘shape’, ‘parameters’)
E.g. strel(‘square’, ‘4’)
Special ‘strel’ object, not matlab array
6. SE decomposition
SE decomposition
any operations = successive erosions & dilations
Computational efficiency
Operation complexity ~ # of SE pixels
E.g. 5-pixel square = 2 times of 3 pixels square
Computational gain = (5*5)/(2*(3*3)) = 25/18
In MATLAB
‘strel’ shows the information
‘getsequence(se)’ returns set of decomposition
E.g. se3 = strel(‘disk’, 5);
E.g. decomp = getsequence(se3);
imerose/imdilate etc does it internally (w. strel obj)
7. Effects & uses of dilation & erosion
Effects
Caution
Increase (dilation)/reduce (erosion) at boundary
Not reversible process (
careful choice of SE
Application to segmentation
Breaks in edge boundary
Dilation till closed contour
Region filling
Erode the boundary back
). Why?
Another example
Thresholding
vertical-erosion
Dilation * 2
Tips: apply the same size (times)
Horizontal-erosion
Same # of dilation and erosion
Particle Counting & sizing: do yourself.
8. Opening & closing
Opening vs closing
Opening
Closing
definiti
on
visual Dilation after erosion Erosion after dilation
effects Removal of small,
isolated objects
Changing small holes into
FB (fill)
Interpretation
Erosion and dilation is ir-reversible.
first operation is key, the next operation is to
recover the size
Simplification of boundary
Illustration
9. Boundary extraction
Thickness of boundary
With different structuring elements
Ex8.7 & F8.11
In MATLAB
bwperim(img): 1-pixel thick boundary extraction
10. Extracting connected compoents
Labeling the connected objects
Background = 0, first obj = 1, and so on
Algorithm-1
Scan from top-left to bottom-right
if all neighbors = 0 or not labeled, assign a new
label p.
If only one FG neighbor, assign p to the pixel
If multiple FG neighbors, equivalent resolution and
assign smaller label.
Algorithm-2
Repeat until no more FG pixels
Choose any unlabeled pixel
MATLAB
[img, num] = Bwlabel(bimg) : labeling binary img
Ex8.8 & F8.12
11. Region filling
Holes (of background pixels)
often remains after segmentation process
often needs to be filled.
Example
Object/Boundary
Hole
One object is filled
All objects are filled
Algorithm
First, file hole region
choose a hole
X0 = {the hole}
Find hole region
Restrict growing outside of boundary
Extend the hole region
Then, fill/combine the hole region:
In MATLAB
imfill(bwimg,’hole’), imfill(bwimg[,location, conn])
12. Hit-or-miss transform
Detect a specific shape in a image (boundary)
Exactly the same pattern both in FG & BG.
Algorithm
First, find hit in FG by erosion.
Second, miss in BG, by erosion
Done by logical complement images.
Finally, combining two constraints/results
Hit-and-miss is better expression
subsections not union!
Ex8.9 & F8.18
MATLAB
imhitmiss(A, B1, B2) : exact & non-exact match
Generalized hit-or-miss
Hit-or-miss
Detect only the exactly same shape
Generalization (relaxation)
Practice needs ‘strict on FG but less strict in BG’
Less sensitive to noise and small variations.
13. Relaxing constraints
forgiving structure in MATLAB(E8.10& F8.20)
imhitmiss(A, B1, B2)
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
imhitmiss(A, interval)
Interval: 1 for FG, -1 for BG, 0 for “don’t care”
-1 -1 -1
0
-1 -1
1
1
-1
0
1
-1
0
1
-1
0
0
0
Same as above
more forgiving
Thinning
If the foreground and background pixels in the
structuring element exactly match foreground and
background pixels in the image, then the image
pixel underneath the origin of the structuring
element is set to background (zero)
14. Skeletonization
Skeleton
Reduce an object into
bare-bone(minimal level)
Topological information
Nodes, branches (length),
angles of branches
Weakness
Sensitive to the small
change/irregularity in
morphology
E.g.) Not exact circle => not
a point
Definition of skeleton
Pixels of same distance from the boundary
Prairie-fire analogy
Set a fire on the boundary and all fire spread at the
same speed, then the skeleton is point where all fires
met.
Implementation of skeleton
By thinning until no more thinning is possible.
15. Opening by reconstruction
Anisotropy effect (prob. in opening)
Opening remove the details of boundary
Dilation changes the boundary similar to “SE.”
Distortion when original shape too different from SE
Algorithm (reconstruct to original shape)
M: mask = original image (shape)
An : marker: eroded image (survived points)
B : simple 3x3 SE
Iterate
Until
Ex. 8.12
mask = imread
marker = imerode
recon = imreconstruct
(marker, mask)
Marker (Eroded, survived points )
MASK (original)
Openning (reconstructed)
16-20. Grey-scale operation
Extension of binary operations
Not covered in lecture
16. grey-scale erosion and dilation
17. grey-scale structuring elements: general
18. grey-scale erosion dilation with flat
structuring elements
19.Grey-scale opening and closing
20. top-hat transform
16&17. Gray scale erosion
Extension of binary to gray-scale image
Erosion
Dilation
Min(A – B) over region B with center location
Max(A + B) over region B with center location
General structuring element
Array of 0 or 1s (if structuring elements or not)
Array of numbers (used for calculation)
Ex.
Input image
Gray scale erosion
Gray scale dilation?
18. Flat structuring element
Flat Structuring
Vb = zeros(), all elements = 0
Erosion with flat SE
Dilation with flat SE
Min filtering with window of SE
Max filtering with windows of SE
Morphological gradient
Dilation - Erosion
Boundary?
19. Gray scale Opening & Closing
Comparison
Opening
Closing
Binary
Erase small objects
Fill small holes
Gray scale
Suppress small
brightness parts
Suppress small darkness
parts
Ex 8.15: illumination compensation
Opening (15x15)
Contrast extension
Subtract illumination