Error with image analysis
Mostra commenti meno recenti
Hello!
I've been trying to get this script working, but I don't know how. What it should be able to do is make the image black and white and be able to pick out the centroid of the object in the image.
Image

Code
i = imread('343A #1.tif');
j = size(i);
imtool(i);
for k = 1:j(1)
for l = 1:j(2)
if i(k,l,1) > 160 & i(k,l,2) > 160
d(k,l) = 1;
else
d(k,l) = 0;
end
end
end
imtool(d);
label = bwlabel(d);
imagesc(label);
[label,num] = bwlabel(d,4);
stats = regionprops(label,'basic');
stats(1).Area
stats(1).Centroid
max_area = max([stats.Area]);
biggrain = find([stats.Area]== max_area);
stats(biggrain).Centroid
Error
??? Attempted to access i(2,51,2); index out of bounds because size(i)=[256,64,1].
Error in ==> TestingCentroid3 at 10 if i(k,l,1) > 160 & i(k,l,2) > 160
1 Commento
Frank
il 18 Mag 2011
Risposte (2)
Sean de Wolski
il 18 Mag 2011
i is apparently a 2d image. what is j (size(i))?
d = I > 160; %don't name your variables i,j as they are the sqrt(-1)
Frank
il 18 Mag 2011
2 Commenti
Sean de Wolski
il 18 Mag 2011
i(k,l,1) is the same location as i(k,l).
hence instead of both for-loops you could do
d = i>160;
Sean de Wolski
il 18 Mag 2011
And I'll repeat: Don't name your variables i,j!
Categorie
Scopri di più su Image Processing Toolbox in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!