【问题标题】:Why doesn't imfindcircles work when trying to find circles in an image with dense packing of circles?为什么 imfindcircles 在尝试在具有密集圆圈的图像中查找圆圈时不起作用?
【发布时间】:2019-02-27 19:26:49
【问题描述】:

代码:

A = rgb2gray(imread('Capture.PNG'));
imshow(A)
[centers, radii, metric] = imfindcircles(A,[12 17]);

我不明白为什么这不起作用,因为图片尺寸为 155x185,我使用 ImageJ 找到了一个球体的直径(大约 30 像素)。

我的目标是识别各个领域。谢谢!

【问题讨论】:

    标签: image matlab computer-vision


    【解决方案1】:

    很抱歉,我现在没有图像处理工具箱,但我以前做过这样的事情。

    我的猜测是您必须先进行边缘检测 (https://www.mathworks.com/help/images/edge-detection.html#responsive_offcanvas)。您可能应该将阈值设置为低以获得大量边缘,然后使用形态运算符对其进行细化。如果您使用 imfindcircles 的 Sensitivity 和 EdgeThreshold 参数进行游戏,您可能无需优化初始边缘集即可逃脱。看起来很有趣!

    【讨论】:

    • 您好,感谢您的评论。我尝试使用边缘阈值和灵敏度参数,但是它们产生了很多误报。如何更改阈值并使用形态学运算符进行细化?我应用了边缘检测过滤器,但是图像非常模糊。 imgur.com/a/Habt3Ig此图片为过滤后的图片
    • 哇,这些边缘很糟糕!我认为您必须使图像的亮度和颜色大致相等(尝试 histeq),然后模板匹配方法可能会更好(您尝试匹配的模板将是一个球)。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多