我生成了我的bw图像并在Matlab(附图)中使用bwlabel
进行了标记,我希望使用imfindcircles
在我的bw图像中找到圆形对象。但是imfindcircles
找不到正确的圆圈(在白色物体上)。有人知道为什么以及如何解决它?谢谢!
答案 0 :(得分:0)
这对我有用:
Irgb=imread('z:/ww5l8.jpg');
Igray=mean(double(Irgb)/255,3);
Ibw=Igray>0.5;
[centers,radii]=imfindcircles(Ibw,[6,80],'ObjectPolarity','bright');
fprintf('Found %d circles\n',size(centers,1));
figure(1); imshow(Ibw); hold on;
plot(centers(:,1),centers(:,2),'b*'); hold off;
更好的选择是使用区域属性进行过滤:
stats = regionprops(Ibw,{'Centroid','Eccentricity'})
Centroid=vertcat(stats.Centroid)
Eccentricity=vertcat(stats.Eccentricity)