Я пытаюсь нарисовать многоугольник, используя интерфейс python для opencv, cv2. Я создал пустое изображение, всего лишь массив размером 640x480. У меня есть список полигонов (четырехточечные четырехугольники), которые я хочу нарисовать на изображении, однако я не могу заставить formate правильно указывать cv2, где должны располагаться четырехугольники, и я продолжаю получать эту ошибку:В чем заключается интерфейс python для opencv2.fillPoly?
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()
где мой список прямоугольников в ожидаемом имеет «границу», содержащее значение списка (х, у) точек. Кодовые печатает:
[[ 91 233]
[419 227]
[410 324]
[ 94 349]]
Я понял, что это список точек для многоугольника, но, по-видимому, что список имеет недопустимое points.checkvector
, что бы это. Поиск Google для этой ошибки не принес ничего полезного.
Я попытался как cv2.fillPoly и cv2.fillConvexPoly здесь, и оба бросают ту же ошибку ... – DaveA
примечание, OpenCV хочет '' Uint8 для изображений. В то время как я, казалось, смог уйти с 'int8' здесь, это вызвало у меня проблемы позже ... – DaveA