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 来做到这一点?

4

1 回答 1

2

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

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

或者

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

更多详情,请访问:Contours -1:入门

于 2012-07-14T16:11:09.410 回答