我想繪製一個使用python界面的多邊形opencv,cv2。我創建了一個空的圖像,只是一個640x480的numpy數組。我有一張要在圖像上繪製的多邊形列表(四點四邊形),但是,我似乎無法獲得指示cv2四邊形應該在哪裏的合法權限,並且我一直收到此錯誤:opencv2.fillPoly的python接口需要什麼作爲輸入?
OpenCV Error: Assertion failed (points.checkVector(2, CV_32S) >= 0) in fillConvexPoly, file .../OpenCV-2.4.0/modules/core/src/drawing.cpp, line 2017
我的代碼主要由以下組成:
binary_image = np.zeros(image.shape,dtype='int8')
for rect in expected:
print(np.array(rect['boundary']))
cv2.fillConvexPoly(binary_image, np.array(rect['boundary']), 255)
fig = pyplot.figure(figsize=(16, 14))
ax = fig.add_subplot(111)
ax.imshow(binary_image)
pyplot.show()
凡在我預期的rects列表中有含(X,Y)點列表值的「邊界」。該代碼打印:
[[ 91 233]
[419 227]
[410 324]
[ 94 349]]
我想,這是一個點的一個多邊形的名單,但顯然該列表具有無效points.checkvector
,不管它是什麼。谷歌搜索該錯誤沒有任何用處。
我都試過cv2.fillPoly和cv2.fillConvexPoly這裏,都拋出了同樣的錯誤... – DaveA
注,OpenCV的希望的圖像 'UINT8'。雖然我在這裏似乎能夠脫離'int8',但後來它給我帶來了麻煩...... – DaveA