如何同时使用 opencv 绘制多条线?
How can I draw multiple lines with opencv, at the same time?
我正在使用 opencv 来识别一些行,并得到一个返回的 numpy 数组,如下所示:
print(lines)
print(type(lines))
[[[884 605 894 605]]
[[854 603 899 603]]
[[864 606 883 606]]
[[679 401 697 401]]
[[751 551 787 551]]
[[764 554 777 554]]
[[664 404 679 404]]]
<class 'numpy.ndarray'>
当我将它传递给 cv2.polylines 时,它不绘制任何东西。我尝试过的事情包括解压 ndarray,在循环中使用 cv2.line,在循环中使用 cv.rectangle,从数组中创建一个全新的 python 列表。
到目前为止,只有线条和矩形可以绘制任何东西,但它们不会一次性在图像上绘制,这就是我希望多段线起作用的原因。作为参考,我是连续截图的,每张截图只画了一个东西,而不是所有的线。
def drawlines(original_img, lines):
try:
img = cv.polylines(original_img, [lines], False, (0, 255, 0), 4)
return img
except:
return original_img
是这样的吗?:
def drawlines(original_img, lines):
try:
isClosed = True
color = (0, 255, 0)
thickness = 2
points = []
for line in lines:
points.append([line[0][0], line[0][1]])
points.append([line[0][2], line[0][3]])
points = np.array(points, np.int32).reshape((-1, 1, 2))
img = cv.polylines(original_img, [points], isClosed, color, thickness)
return img
except:
return original_img
更多信息:
https://www.geeksforgeeks.org/python-opencv-cv2-polylines-method/
我正在使用 opencv 来识别一些行,并得到一个返回的 numpy 数组,如下所示:
print(lines)
print(type(lines))
[[[884 605 894 605]]
[[854 603 899 603]]
[[864 606 883 606]]
[[679 401 697 401]]
[[751 551 787 551]]
[[764 554 777 554]]
[[664 404 679 404]]]
<class 'numpy.ndarray'>
当我将它传递给 cv2.polylines 时,它不绘制任何东西。我尝试过的事情包括解压 ndarray,在循环中使用 cv2.line,在循环中使用 cv.rectangle,从数组中创建一个全新的 python 列表。
到目前为止,只有线条和矩形可以绘制任何东西,但它们不会一次性在图像上绘制,这就是我希望多段线起作用的原因。作为参考,我是连续截图的,每张截图只画了一个东西,而不是所有的线。
def drawlines(original_img, lines):
try:
img = cv.polylines(original_img, [lines], False, (0, 255, 0), 4)
return img
except:
return original_img
是这样的吗?:
def drawlines(original_img, lines):
try:
isClosed = True
color = (0, 255, 0)
thickness = 2
points = []
for line in lines:
points.append([line[0][0], line[0][1]])
points.append([line[0][2], line[0][3]])
points = np.array(points, np.int32).reshape((-1, 1, 2))
img = cv.polylines(original_img, [points], isClosed, color, thickness)
return img
except:
return original_img
更多信息: https://www.geeksforgeeks.org/python-opencv-cv2-polylines-method/