1

这并不是真正的 2D 问题,而实际上是 3D 问题的简化。所以这不是一个直接的图像分析问题。

我有一组 2D 点,可用于渲染 3D 表面贴图。我可以将所有点绘制为顶点,但这很浪费,因为其中许多点会形成线条和其他可以更容易渲染的简单形状。我可以使用 Hough 变换和 OpenCV 来找到这些线;但是 OpenCV 函数并没有告诉我我的集合中的哪些点位于这些线上。

我需要知道不在霍夫变换中找到的线上的点的子集,所以我知道将它们渲染为顶点,或者*这样做我知道不渲染它们。

换句话说,如果我不能以某种方式排除我不再需要绘制的顶点,那么找到简化的形状就没有任何好处。

另一个细节:应用程序不断添加可能需要或可能不需要渲染的新点。我想我可以根据需要在整个点集上重新运行霍夫变换(每个渲染帧一次),但这同样是低效的,因为图像不一定会改变那么多。有没有另一种方法来解决这个问题?

4

1 回答 1

0

霍夫变换为您提供线方程(即无限长的线而不是线段)。

一旦你有了这些方程,你就可以测试每个点离一条线有多远,并决定它是否在这条线上(给定一些最大距离)。

当您添加新点时,您可以进行相同的测试以查看它们是否足够接近任何现有线。

于 2011-10-11T20:10:32.800 回答