检测OpenCV中

时间:2016-04-20 14:27:29

标签: python image opencv computer-vision

所以,假设我有大量包含多种形状的图像。在这些图像中,形状内部可能存在形状,并且存在两种类型的形状。有一些带有图案的形状(如散列标记或对角线),并且有些形状内部没有图案。

这样的图像可能是这样的: Rectangular Shapes 假设我只想检测在它们旁边有图案的形状,如下所示:

Same Image with a shape highlighted purple

一旦我检测到形状,我想输出一个如下所示的文件: Only the shape highlighted above

我最初的解决方案是将图像与3 3单位矩阵卷积,模糊图像,然后尝试从模糊图像中检测斑点。 这不是非常一致,并且在我的图像中具有更难的图案(如交叉阴影线)时根本不起作用

有没有人知道我可以用来生成输出文件的任何好策略?

这是我刚才提出的一个问题的跟进,here 我上次收到的答案对于我发布的示例来说非常棒,但是我想转到opencv,由于嵌套的形状,上一个例子的答案因上面的例子而失败。

顺便说一下,有没有更合适的方式让我提出这个问题?它与我之前的问题非常相似,但略有不同。我发布的内容与我上一期的问题完全不同。

1 个答案:

答案 0 :(得分:1)

由于您没有为您的问题提供代码,我还会提供无代码的答案:

  1. 使用霍夫变换检测对角线图案的线条
  2. 确定对角线图案的终点
  3. 对于每个轮廓,检查对角线图案的终点是否位于轮廓上(使用Shapely)
  4. 对于与对角线图案的端点相交的每个轮廓,将其填充
  5. 对于与对角线图案的端点相交的每个轮廓,使用轮廓层次确定所有内轮廓(子)并取消选择属于这些内轮廓的区域。