首页 文章

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

提问于
浏览
2

我有一个图像,我正在使用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 回答

  • 2

    使用 cv2.drawContours() 函数和 lineType = -1 标志(Docs

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

    要么

    cv2.drawContours(img,contours,-1,color,-1) #只需一步即可填充所有轮廓

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

相关问题