我有以下代码:
import cv2
import numpy
ar = numpy.zeros((10,10))
triangle = numpy.array([ [1,3], [4,8], [1,9] ], numpy.int32)
如果我像这样使用cv2.fillConvexPoly:
cv2.fillConvexPoly(ar, triangle, 1)
然后结果如预期 . 但是,如果我尝试:
cv2.fillPoly(ar, triangle, 1)
然后我得到一个失败的断言 . 这似乎与断言如果我使用没有dtype numpy.int32
的 cv2.fillConvexPoly
的numpy数组失败的断言相同 . cv2.fillPoly
和 cv2.fillConvexPoly
期望第二个参数有不同的数据类型吗?如果是这样,我应该为 cv2.fillPoly
使用什么?
1 回答
cv2.fillPoly
和cv2.fillConvexPoly
为其点数组使用不同的数据类型,因为fillConvexPoly
只绘制一个多边形,fillPoly
绘制它们的(python)列表 . 从而,是调用这两种方法的正确方法 . 如果你有
square
和hexagon
点数组,你可以使用画三个 .