【问题标题】:Counting circles using morphological operations使用形态学运算计算圆
【发布时间】:2020-07-31 08:33:16
【问题描述】:

我有一张图片,要求我计算圆圈的数量。我能够将其缩小为这张图片:

现在我可以使用连接组件的数量来获得答案。没关系。但是是否有可能只使用形态学操作来做到这一点? (比如以某种方式获取这些“圆圈”的“中心”,然后简单地计算像素)

【问题讨论】:

  • 可以获取轮廓并计算轮廓。我看不出你怎么能单独用形态学来计算。如果您知道一个圆的面积(以像素为单位),那么您可以简单地计算白色像素并除以一个圆的面积。
  • 在 Matlab 中是函数:bwmorph(Image, 'shrink', Inf)
  • @AlexAlex 我正在使用 python
  • 细化在 OpenCV python 中实现,见这里:answers.opencv.org/question/163561/…
  • 为什么你不想使用连接组件来计算圆圈呢?它非常快,可能比计算图像骨架和计算白色像素要快得多。

标签: python image opencv image-processing image-morphology


【解决方案1】:

有一种称为细化的操作,它迭代地侵蚀图像但保留一组特定的点(这是条件侵蚀)。根据条件腐蚀中使用的结构元素的集合,该操作可以将对象减少到一个点(或者对于其中有孔的对象来说是一个圆)。您可以应用细化,然后计算像素。

正如 a comment 中提到的 Alex Alex,在 MATLAB bwmorph(Image, 'shrink', Inf) 中执行此操作。

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2015-02-04
    • 2017-04-07
    相关资源
    最近更新 更多