MATLAB Answers

0

why imerode and imdilate make matlab stopped every time ?

Asked by alaa adel on 8 Dec 2015
Latest activity Commented on by Walter Roberson
on 10 Dec 2015
after write imerode function
i=imread('\cameraman.jpg');
B=im2bw(1,0.3);
K3=ones(3);
K5=ones(5);
K7=ones(7);
K9=ones(9);
B3=imerode(B,K3);
B5=imerode(B,K5);
B7=imerode(B,K7);
B9=imerode(B,K9);
imshow(B)
figure, imshow(B3), title('by 3');
figure, imshow(B5), title('by 5');
figure, imshow(B7), title('by 7');
figure, imshow(B9), title('by 9');
matlab stop and popup msg with matlab must be debug ?
what can i do ?
function imdilate show msg matlab has encountered an internal problem and need to close .
so how solve this problem ?

  2 Comments

Does your MATLAB also stop working as soon as you draw any graphics? For example, does plot(3,5) cause problems?
FYI: The crash can be observed by doing this:
imerode(true, ones(3,3));
There is no crash observed for other strel sizes.

Sign in to comment.

1 Answer

Answer by Amith Kamath on 8 Dec 2015
 Accepted Answer

Alaa:
You've probably found a bug in imerode. However, I believe you really meant to do this instead:
B = im2bw(i, 0.3); % in this case, B is indeed the 256x256 matrix.
rather than
B = im2bw(1,0.3); % in this case, B is a scalar logical value of 1.
Doing so will not make MATLAB crash, but provide you the results you were originally looking for.
Hope this helps!

  2 Comments

thank you for your help
this
B= im2bw(i);
solve my problem as not make MATLAB crash
but i don't know the reason
This is one of the reasons to avoid using i as a variable name.

Sign in to comment.