【问题标题】:Detecting embedded blob regions in an image检测图像中嵌入的斑点区域
【发布时间】:2016-09-25 08:37:20
【问题描述】:

我在上述图像(原始)中查找 blob 区域(标记为红色)时遇到问题。

目前我能想到两个解决方案

1.使用 SimpleBlobDetector (opencv) 查找 blob 区域 opencv SimpleBlobDetector 可以很好地检测断开或孤立的 blob 区域,但是当区域像图像中的那样附加时它会失败

2。编写自定义代码通过逐像素迭代来检测模式 这种解决方案肯定能解决问题,但会涉及大量数学运算,而且处理时间也会急剧增加,所以这是最后一种方法。

有没有人知道解决此类问题的方法,可能的解决方案是

  • 内置函数 (opencv)
  • 任何算法

【问题讨论】:

  • 您可以进行距离变换,如果您知道要查找的 blob 的大小,然后对结果图像进行阈值处理。
  • 你有没有尝试过任何形态?也许是形态学开放的几次迭代?如果您的 blob 足够厚,您还可以尝试侵蚀一些迭代,然后对结果运行连通性/blob 分析。
  • 在我的用例中,形态运算不是一个好的选择,因为线的粗细可能因样本而异,形态运算会导致信息丢失。

标签: opencv image-processing computer-vision opencv3.0


【解决方案1】:

我还没有这样做,但也许您可以尝试找到一种方法来计算 blob 的估计半径,然后将其与要再次处理的图像隔离开来,这样它就不会将连接的 blob 算作一个。

OpenCV 文档说:

从这些组中,估计斑点的最终中心及其半径,并作为关键点的位置和大小返回。

昂贵但也许值得一试。 OpenCV 使用 SimpleBlobDetector 进行各种过滤,我认为有一个用于循环。你可以利用它。

【讨论】:

  • 谢谢,我尝试使用 opencv 的 blob 算法,问题是我说过它只会找到孤立的 blob,简单来说,当使用上面的图像时,它根本不会检测到任何 blob,因为整个T 形图像而不是斑点
  • 哦,对了,对不起,我很困惑。检测到的闭合轮廓怎么样?就像如果这些斑点是连接的,那么它们必须具有封闭的不规则形状。但如果这也不起作用,那么也许您可以编写自定义代码。祝你好运
  • 上图是单一轮廓,因此无法进一步破坏。当然整个图像会有一个不规则的形状,但问题不是要找到整个图像是否不规则,而是要找到轮廓中存在的这些像斑点一样的小区域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 2019-01-17
  • 2017-05-04
相关资源
最近更新 更多