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

时间:2012-07-14 16:09:15

标签: python opencv numpy

我有一张图片,我正在使用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直接进行此操作?

1 个答案:

答案 0 :(得分:2)

cv2.drawContours()功能与lineType = -1标记(Docs

一起使用

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

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

有关详细信息,请访问:Contours -1 : Getting Started