MatLab imfindcircles在我的bw图像中不起作用

时间:2017-11-20 19:02:37

标签: matlab image-processing

我生成了我的bw图像并在Matlab(附图)中使用bwlabel进行了标记,我希望使用imfindcircles在我的bw图像中找到圆形对象。但是imfindcircles找不到正确的圆圈(在白色物体上)。有人知道为什么以及如何解决它?谢谢!

enter image description here

1 个答案:

答案 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)