why imerode and imdilate make matlab stopped every time ?

3 views (last 30 days)
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
Walter Roberson
Walter Roberson on 8 Dec 2015
Does your MATLAB also stop working as soon as you draw any graphics? For example, does plot(3,5) cause problems?
Amith Kamath
Amith Kamath on 8 Dec 2015
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.

Accepted Answer

Amith Kamath
Amith Kamath on 8 Dec 2015
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
alaa adel
alaa adel on 9 Dec 2015
Edited: Walter Roberson on 10 Dec 2015
thank you for your help
this
B= im2bw(i);
solve my problem as not make MATLAB crash
but i don't know the reason
Walter Roberson
Walter Roberson on 10 Dec 2015
This is one of the reasons to avoid using i as a variable name.

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!