code for performing erosion and dilation without using builtin functions like imdilate or imerode??

code for dilation and erosion without using builtin functions?

3 Comments

So write one. It is your homework after all. Why not make an effort. If and when you have a real question, then ask it.
"aaa aaa" commented
then why u r having tis page ..better close it
"aaa aaa": this facility exists to educate, not to do people's work for them.
When someone has a homework question, then at the very least we expect them to explain what it is they do not understand, at which point we will explain, or we will point them to appropriate documentation.

Sign in to comment.

Answers (3)

Dilation code
A=imread( 'text.png' );
A=im2bw(A);
%Structuring element
B=[1 1 1 1 1 1 1;];
C=padarray(A,[0 3]);
D=false(size(A));
for i=1:size(C,1)
for j=1:size(C,2)-6
D(i,j)=sum(B&C(i,j:j+6));
end
end
figure,imshow(D);

3 Comments

Erosion code
A=imread('faiza.png')
A=im2bw(A);
%Structuring element
B=[1 1 0];
%Pad array with ones on both sides
C=padarray(A,[0 1],1);
%Intialize the matrix D of size A with zeros
D=false(size(A));
for i=1:size(C,1)
for j=1:size(C,2)-2
L=C(i,j:j+2);
%Find the position of ones in the structuring element
K=find(B==1);
if(L(K)==1)
D(i,j)=1;
end
end
end
figure,imshow(D);
does it work with 3x3 Structuring element? if not, what adjustment do we need to make?
That code is only designed for linear structuring elements. The adjustment to it for a different width of linear structuring element would be
for j=1:size(C,2)-size(B,2)+1
L=C(i,j:j+size(B,2)-1);

Sign in to comment.

Asked:

on 5 Mar 2016

Commented:

on 21 Feb 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!