python - OpenCV cv2.fillPoly vs. cv2.fillConvexPoly: expected data type for array of polygon vertices? -
i have following code:
import cv2 import numpy ar = numpy.zeros((10,10)) triangle = numpy.array([ [1,3], [4,8], [1,9] ], numpy.int32)
if use cv2.fillconvexpoly so:
cv2.fillconvexpoly(ar, triangle, 1)
then results expected. if, however, try:
cv2.fillpoly(ar, triangle, 1)
then failed assertion. seems identical assertion fails if use numpy array cv2.fillconvexpoly
not have dtype numpy.int32
. cv2.fillpoly
, cv2.fillconvexpoly
expect different data types second argument? if so, should using cv2.fillpoly
?
cv2.fillpoly
, cv2.fillconvexpoly
use different data types point arrays, because fillconvexpoly
draws 1 polygon , fillpoly
draws (python) list of them. thus,
cv2.fillconvexpoly(ar, triangle, 1) cv2.fillpoly(ar, [triangle], 1)
are correct ways call these 2 methods. if had square
, hexagon
point arrays, use
cv2.fillpoly(ar, [triangle, square, hexagon], 1)
to draw three.
Comments
Post a Comment