OpenCV cv2.fillPoly vs. cv2.fillConvexPoly: ¿el tipo de datos esperado para la matriz de vértices poligonales?

Tengo el siguiente código:

import cv2 import numpy ar = numpy.zeros((10,10)) triangle = numpy.array([ [1,3], [4,8], [1,9] ], numpy.int32) 

Si uso cv2.fillConvexPoly así:

 cv2.fillConvexPoly(ar, triangle, 1) 

entonces los resultados son los esperados. Si, sin embargo, bash:

 cv2.fillPoly(ar, triangle, 1) 

Entonces me sale una afirmación fallida. Esto parece ser idéntico a la afirmación que falla si uso una matriz cv2.fillConvexPoly para cv2.fillConvexPoly que no tiene dtype numpy.int32 . ¿ cv2.fillPoly y cv2.fillConvexPoly esperan diferentes tipos de datos para su segundo argumento? Si es así, ¿qué debo usar para cv2.fillPoly ?

cv2.fillPoly y cv2.fillConvexPoly usan diferentes tipos de datos para sus arreglos de puntos, porque fillConvexPoly dibuja solo un polígono y fillPoly dibuja una lista (python) de ellos. Así,

 cv2.fillConvexPoly(ar, triangle, 1) cv2.fillPoly(ar, [triangle], 1) 

Son las formas correctas de llamar a estos dos métodos. Si tuviera matrices square y hexagon , podría usar

 cv2.fillPoly(ar, [triangle, square, hexagon], 1) 

para dibujar los tres.