How do I create a structuring element of my own?
    6 views (last 30 days)
  
       Show older comments
    
I want to create a structuring element with the center '0' (eg. [1 0 1])and I want to see the effect of erosion and dilation of it on a 3x3 binary matrix. How do I go about it? please explain. My code is giving me same answers for erosion and dilation.
aa=[1 1 1; 1 0 1; 1 1 1]
s=[1 1 1];
ero=imerode(aa,s)
dil=imdilate(aa,s)
pp=[1 0 1];
ero1=imerode(aa,pp)
dil1=imdilate(aa,pp)
2 Comments
Accepted Answer
  Matt J
      
      
 on 17 Oct 2018
        Elements outside the boundary of the matrix do not participate in the erosion/dilation. If you pad aa to a larger size, you will see different effects.
>> aaa=zeros(5); aaa(2:4,2:4)=aa
aaa =
       0     0     0     0     0
       0     1     1     1     0
       0     1     0     1     0
       0     1     1     1     0
       0     0     0     0     0
>> ero=imerode(aaa,[1,1,1])
ero =
       0     0     0     0     0
       0     0     1     0     0
       0     0     0     0     0
       0     0     1     0     0
       0     0     0     0     0
>> ero=imerode(aaa,[1,0,1])
ero =
       0     0     0     0     0
       1     0     1     0     1
       1     0     1     0     1
       1     0     1     0     1
       0     0     0     0     0
>> ero=imdilate(aaa,[1,0,1])
ero =
       0     0     0     0     0
       1     1     1     1     1
       1     0     1     0     1
       1     1     1     1     1
       0     0     0     0     0
2 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
