我正在使用 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
uj5u.com熱心網友回復:
像這樣的東西?:
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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/447020.html
標籤:Python 麻木的 opencv 图像处理 计算机视觉
上一篇:裂縫檢測opencvc
下一篇:獲取某個圓的像素值?
