Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Can any one help me to correct this code??
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, to find regions having the higher MeanIntesity compared to the MeanIntesity of its edge, I used this line but I got an error. thank you for helping me to find the right solution.
image=imhmin(I,4,8);
edg = edge(image,'log',0);
m1 = bwmorph(edg,'spur');
m2 = bwmorph(m1,'hbreak');
I2=imfill(m2,'holes');
holes = I2 & ~m2;
imagebin1 = bwlabel(holes,8);
imggris1=I;
imggris1 (imagebin1 ==0)=255;
imagebin2 = edge(imggris1,'log',0);
imggris2=I;
imggris2(imagebin2==0)=255;
ad = regionprops(imagebin1, imggris1, 'MeanIntensity');
det = regionprops(imagebin2, imggris2, 'MeanIntensity');
feim = find([ad.MeanIntensity]>[det.MeanIntensity]);
The error:
??? Error using ==> gt
Matrix dimensions must agree.
Error in ==> detect_fea at 41
feim = find([ad.MeanIntensity]>[det.MeanIntensity]);
0 Kommentare
Antworten (3)
Matt J
am 15 Okt. 2012
Bearbeitet: Matt J
am 15 Okt. 2012
[ad.MeanIntensity] and [det.MeanIntensity] at line 41 of detect_fea are not the same size. The operation [ad.MeanIntensity]>[det.MeanIntensity] requires that they both be the same size or one of them be a scalar.
Use the DSTOP command or breakpoints to pause your code at line 41 to examine what happened. Apparently, though, regionprops did not find the same number of regions in both ad and det.
0 Kommentare
Image Analyst
am 15 Okt. 2012
For some reason you don't have as many blobs in ad as you do in det.
0 Kommentare
Pamela Paolo
am 15 Okt. 2012
Bearbeitet: Pamela Paolo
am 15 Okt. 2012
2 Kommentare
Image Analyst
am 15 Okt. 2012
I wouldn't even do it like that. I'd use bwperim as a mask to get the outer layer of your blobs. I think with bwperim you should have the same number of blobs.
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!