我需要一个很好的方法来使用点来演示形状之外。我需要一个算法给我一些位于形状外部的点。
什么是好的开始?
答案 0 :(得分:3)
OpenCV为您提供解决方案,但这取决于准确性。您可以从approximate chain开始 - 它将通过多边形曲线逼近您的形状,并为您提供顶点坐标。您始终可以通过pointpolygontest OpenCV function或fitLine function拟合来更精确地对其进行测试。当然,您首先需要找到边缘(openCV具有Canny边缘检测等)和countours(请参阅上面的链接以了解findContours函数说明)。所以你的步骤是:
答案 1 :(得分:1)
这称为赫尔发现。在正常情况下,您可能希望找到Convex Hull,但您的示例显示了Concave Hull。如果您的形状是通过样条曲线生成的,那么您使用的样条曲线算法应该从您输入的控制点生成一组边缘点。但是,如果您的形状完全是随机的(即不是从数学模型生成),那么您将需要使用更类似于边缘检测图形传递(http://en.wikipedia.org/wiki/Edge_detection)的不同技术。 (http://www.codeproject.com/Articles/93642/Canny-Edge-Detection-in-C)
答案 2 :(得分:0)
您可以使用以下方法:
3x3
方形元素