【发布时间】:2018-02-28 05:27:32
【问题描述】:
我有以下示例图片:
我想用白色填充这些角的三角形。我如何使用 OpenCV 检测到它们?当然,在这个特定的示例中,我可以只依靠渐变或亮度。不过,未来图像的形状不会那么完美,所以我正在考虑一些形状检测。
我听说形状通常可以通过例如霍夫变换来检测。但我不知道我应该从什么开始。
OpenCV 中的轮廓检测没有帮助,因为它找到了太多候选对象。 我尝试使用 size = 3 的 approxPolyDP,但也没有结果(没有找到此类对象)。
这些三角形将永远是三角形,但它们不需要每次都接触条形。它们总是位于图像的边缘。它们共享大致相同的区域。
我希望能够检测三角形并在某个容器中收集与这些三角形对应的点。
【问题讨论】:
-
轮廓检测中的错误是双重的:首先,OpenCV 会找到图像 白色 部分的轮廓,因此您需要将其反转。但是,即使您确实反转了它,另一个阻止您的问题是至少底部的两个三角形连接到条形。你说你会有比这些更难的图像——最好先发布你更难的例子。例如。它们总是直角三角形吗?他们会一直处于边缘吗?这些三角形有什么属性?
-
@AlexanderReynolds 不幸的是,我还没有更硬的图像。这些三角形将永远是三角形,但它们不需要每次都接触条形。它们总是在图像的边缘。它们共享大致相同的区域。