最佳答案
你有很多选择。
1) 如果像示例中的点大部分位于一条直线上,最简单的方法是使用形态变换 (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html)。例如,如果你使用闭合(即扩张和腐 eclipse ),你将首先通过扩张使点变大(这样它们就会相互接触),然后你将腐 eclipse (这样它们就会回到原来的状态)大小,同时仍然相互接触)。那可以模仿一条线。
2) 您可以使用 OpenCV 的 fitLine 函数,将一条线拟合到 2D 或 3D 集。 ( http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html )
3) 可以逐点加入。但是为此,您需要猜测线段的方向,并相应地对点进行排序。可以使用OBB(oriented bounding box)结构来保存属于某些线段的点,然后使用OBB的主导轴作为线段。
关于opencv - 如何通过点云拟合曲线?开放式计算机/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595265/