OpenCV:将不规则形状的轮廓内部设置为一种颜色



我有一张图像,我正在使用OpenCV查找该图像中的轮廓。例如:

contours, hierarchy = cv2.findContours(image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)

返回的每个轮廓有时都是非常不规则的形状。例如,其中一个的返回是:

contour = [[[34  4]]
[[35  3]]
[[36  4]]
[[36 11]]
[[35 12]]
[[34 11]]
[[34  6]]
[[33  6]]
[[32  5]]
[[33  4]]]

我想将这个轮廓的内部设置为特定的颜色。我已经尝试过使用cv2.BoundingRect来获得这个轮廓的边界矩形,然后使用它来设置颜色,然而,我希望使用实际轮廓来实现这一点的更精确的方法。

有没有一种简单的方法可以通过OpenCV提供的函数或通过NumPy来实现这一点?

使用带有lineType = -1标志(文档)的cv2.drawContours()函数

例如:cv2.drawContours(img,[cnt],0,color,-1)#用于填充特定轮廓

cv2.drawContours(img,contours,-1,color,-1)#在一步中填充所有轮廓

有关更多详细信息,请访问:Contours-1:入门

相关内容

最新更新