【发布时间】:2015-09-15 20:43:18
【问题描述】:
【问题讨论】:
-
您的问题远太宽泛,无法在此回答。或者,您可以 just use your hand.
-
对我来说似乎是合法的
【问题讨论】:
你有很多选择。
1) 如果点在示例中大部分位于一条线上,最简单的方法是使用形态变换 (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html)。例如,如果您使用关闭(即扩张和侵蚀),您将首先通过扩张使点变大(使它们相互接触),然后您将侵蚀(使它们回到原来的状态)尺寸,同时仍然相互接触)。可以模仿台词。
2) 您可以使用 OpenCV 的 fitLine 函数,将线拟合到 2D 或 3D 集合。 (http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html)
3) 您可以逐点加入。但是,为此,您需要猜测线段的方向,并相应地对点进行排序。您可以使用 OBB(orientated bounding box)结构来保存属于某些线段的点,然后使用 OBB 的主轴作为线段。
【讨论】:
正如ilke444所说,我会使用形态闭合操作,甚至膨胀几次然后使用'骨架'操作。
在你有一条漂亮的细线之后,我想你想要一个连续的轮廓,不一定是直线。所以你可能想使用ApproxPolyDP:
http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#approxpolydp
它返回描述轮廓的点列表,您可以设置其精度。
【讨论】: