这不是2D问题,实际上是3D问题的简化。所以这不是一个直接的图像分析问题。
我有一组2D点,我将用它来渲染3D表面贴图。我可以将所有点绘制为顶点,但这很浪费,因为许多这些点将形成线条和其他简单的形状,可以更容易地渲染。我可以使用Hough Transform和OpenCV来查找这些行;但是OpenCV函数并没有告诉我我的集合中的哪些点会出现在这些行上。
我需要知道不的点子集位于Hough变换中的线上,所以我知道将它们渲染为顶点,或者* 做< / em>所以我知道不要渲染它们。
换句话说,如果我不能以某种方式排除我不再需要绘制的顶点,找到简化的形状没有任何好处。
另一个细节:应用程序不断添加可能需要或可能不需要呈现的新点。我想我可以根据需要在整个点上重新运行霍夫变换(每个渲染帧一次),但这又是低效的,因为图像不一定会改变那么多。有没有其他方法来解决这个问题?
答案 0 :(得分:0)
霍夫变换给出了线的方程(即无限长的线而不是线段)。
一旦你有了这些方程,你可以测试far each point is from a line的方式,并决定它是否在线上(给定一些最大距离)。
当您添加新点时,您可以执行相同的测试,看它们是否足够接近任何现有线。