opencv、cv2へのpythonインターフェースを使用してポリゴンを描画しようとしています。640x480 numpy 配列だけの空の画像を作成しました。画像に描画したい多角形 (4 点の四角形) のリストがありますが、四角形がどこにあるべきかを cv2 に指示するためのフォーマットを正しく取得できないようで、このエラーが発生し続けます:
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()
ここで、予想される四角形のリストには、(x,y) ポイントのリストの値を含む「境界」があります。コードは次を出力します。
[[ 91 233]
[419 227]
[410 324]
[ 94 349]]
これはポリゴンのポイントのリストだと思いましたが、どうやらそのリストには無効な がpoints.checkvector
含まれているようです。そのエラーをGoogleで検索しても、何も役に立ちませんでした。