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