def func_get_line_coords(blank_canvas, coord_pairs_to_draw):
to_return = list()
for idx, coord_pair in enumerate(coord_pairs_to_draw):
cv2.line(blank_canvas, coord_pair[0], coord_pair[1], idx+1, 1)
to_return.append(np.argwhere(blank_canvas==idx+1))
return to_return
blank_canvas = np.zeros((1000,1000), dtype=np.uint8)
coord_pairs_to_draw = [[(23, 76), (900, 4)], [(890, 640), (32, 500)], [(876, 43), (29, 900)], [(1, 3), (709, 82)], [(47, 23), (900, 900)]]
pixel_coords = func_get_line_coords(blank_canvas, coord_pairs_to_draw)
根据标题,我正在尝试获取一个坐标列表,该列表用于在cv2的2个坐标之间生成的直线。我对情节本身不感兴趣,似乎必须实际划清界限,然后找到匹配的坐标可能是不必要的开销。以上是使用这种方法我能想到的最快的实现(这是一个玩具示例)
我试图坚持使用“opencv将产生的”结果,以避免在以后使用opencv本身绘图时出现与值不一致的情况(我不确定opencv使用的不同算法之间的确切像素位置是否会有所不同)
编辑:我稍微编辑了这个问题,以表达我有一种方法(通过绘制和提取),但我希望加快速度,并认为消除绘制然后阅读可能是一种方法
目前没有回答
相关问题 更多 >
编程相关推荐