Я пытаюсь нарисовать многоугольник, используя интерфейс python для opencv, cv2. Я создал пустой образ, просто массив 640x480 numpy. У меня есть список многоугольников (четырехугольников с четырьмя точками ), которые я хочу нарисовать на изображении, однако я не могу правильно форматировать, чтобы указать 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
, что бы это ни было. Поиск этой ошибки в гугле ничего полезного не дал.