我需要在很多显微镜照片中找到一些模糊的圆形结构,并希望imfindcircles可以帮助我做到这一点。因此,为了开始使用,我创建了一个相当随机的基本测试图片。代码中显示的是在网上找到的两个示例。装有硬币的硬币看起来像是一项艰巨的任务,但是该功能可以轻松识别圆圈。
在我的图像中,我最多只能找到一个。问题是什么?我在犯一些明显的错误吗?
% Example from web
im = imread('http://kimyamuhendisi.com/images/pipe.jpg');
[c,r] = imfindcircles(im,[10,20]);
figure, imshow(im); viscircles(c,r);
% Example from web
A = imread('coins.png');
[centers, radii, metric] = imfindcircles(A,[15 30]);
figure, imshow(A); viscircles(centers, radii, 'EdgeColor', 'b');
% My test picture
Iuint8 = imread('https://i.imgur.com/yEM8pza.jpg');
Igray = rgb2gray(Iuint8);
[centers, radii] = imfindcircles(Igray,[10 30]); %Finds B
% [centers, radii] = imfindcircles(Igray,[20 40]) %Nothing
% [centers, radii] = imfindcircles(Igray,[30 50]) %Nothing
% [centers, radii] = imfindcircles(Igray,[50 70]) %Nothing
% [centers, radii] = imfindcircles(Igray,[70 90]) %Nothing
% [centers, radii] = imfindcircles(Igray,[90 120]) %Nothing
% [centers, radii] = imfindcircles(Igray,[240 270]) %Nothing
figure, imshow(Igray); viscircles(centers, radii, 'EdgeColor', 'b');