从 matlab 中的 imfindcircles 检测到的麦田怪圈
Posted
技术标签:
【中文标题】从 matlab 中的 imfindcircles 检测到的麦田怪圈【英文标题】:crop circles detected from imfindcircles in matlab 【发布时间】:2018-12-27 04:21:08 【问题描述】:我正在使用 imfindcircles 函数从图像中检测圆圈。 下面是代码。 image here
img= imread('image.png');
imshow(img);
rmin=10
rmax=50
[centersDarkl, radiiDarkl]=imfindcircles(img,
[rmin,rmax],'ObjectPolarity','dark','Sensitivity',0.80);
viscircles(centersDarkl, radiiDarkl,'LineStyle','--')
现在,我想裁剪检测到的圆圈并将它们保存为不同的图形。
【问题讨论】:
您要上传 image.jpg 以便我们帮忙吗? 我已经编辑了帖子并添加了图片 【参考方案1】:这是适用于此图像的解决方案。我使用 floor 和 ceil 来避开边缘,rmax 必须大于 75。
[img,map] = imread('MwBQo.png','png');
img = ind2rgb(img, map);
figure;
imshow(img);
rmin = 10;
rmax = 80;
[centersDarkl, radiiDarkl] = imfindcircles(img,...
[rmin,rmax],'ObjectPolarity','dark','Sensitivity',0.80);
viscircles(centersDarkl, radiiDarkl,'LineStyle','--')
for iCirc = 1:size(centersDarkl,1)
croppediCirc,1 = img(...
ceil(centersDarkl(iCirc,2)-radiiDarkl(iCirc)):...
floor(centersDarkl(iCirc,2)+radiiDarkl(iCirc)),...
ceil(centersDarkl(iCirc,1)-radiiDarkl(iCirc)):...
floor(centersDarkl(iCirc,1)+radiiDarkl(iCirc)),:);
end
figure;
subplot(1,2,1)
imshow(cropped1)
subplot(1,2,2)
imshow(cropped2)
【讨论】:
以上是关于从 matlab 中的 imfindcircles 检测到的麦田怪圈的主要内容,如果未能解决你的问题,请参考以下文章