【发布时间】:2020-10-31 03:43:59
【问题描述】:
我正在使用 OpenCV 和 python 开发一个项目,但遇到了这个小问题。
我在列表中存储了许多行的端点坐标。有时会出现从一个点检测到多条线的情况。在这些线中,我想保留最短的线并消除所有其他线,因此我的图像将不包含绘制多条线的点。
存储最初检测到的所有线的信息(两个端点的坐标)的变量如下:
var = [[Line1_EndPoint1, Line1_EndPoint2],
[Line2_EndPoint1, Line2_EndPoint2],
[Line3_EndPoint1, Line3_EndPoint2],
[Line4_EndPoint1, Line4_EndPoint2],
[Line5_EndPoint1, Line5_EndPoint2]]
其中,LineX_EndPointY(行号“X”,该行的端点“Y”)的类型为 [x, y],其中 x 和 y 是图像中该点的坐标。
谁能建议我如何解决这个问题。
您可以修改行数据的存储方式。如果您修改,请说明您的数据结构以及它是如何创建的
此类数据示例:
[[[551, 752], [541, 730]],
[[548, 738], [723, 548]],
[[285, 682], [226, 676]],
[[416, 679], [345, 678]],
[[345, 678], [388, 674]],
[[249, 679], [226, 676]],
[[270, 678], [388, 674]],
[[472, 650], [751, 473]],
[[751, 473], [716, 561]],
[[731, 529], [751, 473]]]
Python 代码将是可观的。
【问题讨论】:
-
我对这个问题感到困惑-您的标题表明您只想从任何点开始/发出一行,但问题的内容暗示了终点,而不是起点。你的意思是你应该只有一条长度最短的线,它有唯一的起点和终点,只是起点还是终点?
-
行从哪里开始或从哪里结束都没有关系。问题是最终输出中的任何 2 行或更多行都不应该有任何公共端点。 “开始”和“结束”两个词只是用来命名端点。
标签: python numpy opencv image-processing cv2