OpenCV:将不规则形状轮廓的内部设置为颜色
Posted
技术标签:
【中文标题】OpenCV:将不规则形状轮廓的内部设置为颜色【英文标题】:OpenCV: setting inside of irregularly shaped contour to a color 【发布时间】:2012-07-14 16:09:14 【问题描述】:我有一张图片,我正在使用 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】:将cv2.drawContours()
函数与lineType = -1
标志一起使用(Docs)
eg : cv2.drawContours(img,[cnt],0,color,-1) # 用于填充特定轮廓
或
cv2.drawContours(img,contours,-1,color,-1) #一次性填充所有轮廓
更多详情,请访问:Contours -1 : Getting Started
【讨论】:
以上是关于OpenCV:将不规则形状轮廓的内部设置为颜色的主要内容,如果未能解决你的问题,请参考以下文章