使用Matlab imfindcircles函数查找圆圈

时间:2017-11-23 15:49:20

标签: matlab computer-vision

我尝试使用Matlab函数imfindcircles找到图像中显示的所有硬币。但它不起作用!

enter image description here

这是我的代码:

I = imread('coins.jpg');
imshow(I);
[centers, radii] = imfindcircles(I, [70,170],'Sensitivity',.95);
centerStrongs= centers(:,:);
radiiStrongs = radii(:);
viscircles(centerStrongs, radiiStrongs, 'EdgeColor','b');

通过使用imdistline,我知道硬币的半径在(70,170)之间

1 个答案:

答案 0 :(得分:1)

你确定那是行不通的吗?尝试更好地调整灵敏度:

I = imread('/home/me/Desktop/coin.jpg');
imshow(I);
[centers, radii] = imfindcircles(I, [70,170],'Sensitivity',.98);
centerStrongs= centers(:,:);
radiiStrongs = radii(:);
viscircles(centerStrongs, radiiStrongs, 'EdgeColor','b');

我每枚硬币都很漂亮。 (很抱歉没有在评论中写这个,我还没有足够的声誉)

coins are detected