I am trying to draw a polygon using the python interface for opencv, cv2. I created an empty image, just a 640x480 array. I have a list of polygons (four-point quadrangles) that I want to draw on the image, however I cannot get the formula to correctly indicate cv2 where the quadrangles should be located, and I continue to get this error:
OpenCV Error: Assertion failed (points.checkVector(2, CV_32S) >= 0) in fillConvexPoly, file .../OpenCV-2.4.0/modules/core/src/drawing.cpp, line 2017
My code consists mainly of the following:
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()
where my list of lines pending has a "border" containing the value of the list of (x, y) points. The code prints:
[[ 91 233] [419 227] [410 324] [ 94 349]]
I realized that this is a list of points for the polygon, but apparently this list has invalid points.checkvector
, whatever that is. Searching for this error in google did not bring anything useful.
Davea source share