opencv查找轮廓后如何改变轮廓内的颜色C++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv查找轮廓后如何改变轮廓内的颜色C++相关的知识,希望对你有一定的参考价值。

已经找到头发的轮廓,但是我想把头发的颜色变成灰色,要怎么做呢?

参考技术A #include "stdio.h"
#include "conio.h"
main()

int i,j,result;
printf("\n");
for (i=1;i<10;i++)

for(j=1;j<10;j++)

result=i*j;
printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/

printf("\n"); /*每一行后换行*/

getch();
本回答被提问者和网友采纳

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

【中文标题】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查找轮廓后如何改变轮廓内的颜色C++的主要内容,如果未能解决你的问题,请参考以下文章

30opencv入门轮廓查找与绘制——轮廓特征属性及应用

android如何在 java opencv 中查找最大轮廓

OpenCV——查找绘制轮廓(实际是把连通域填上某种颜色)

求C++中利用opencv计算轮廓图像傅里叶描述子的代码

OpenCV C++案例实战八《基于Hu矩轮廓匹配》

如何在 Python OpenCV 中删除轮廓内的轮廓?