C++ opencv 图像色彩空间转换--色域捕获
创始人
2024-01-20 14:18:29
0

1.API和相关知识

1.inRange

在opencv中,我们提取指定色彩范围的区域,采用inRange实现,这样的一块区域,学名叫做ROI(region of interest),感兴趣区域。

关于inRange的提取原理

图像中,对于在指定色彩范围内的颜色,将置为255(白色),不在的则置为0(黑色)
对于多通道的输入,输出结果是各个通道的结果相与,当各通道结果都在上下限之内时,输出为255,否则为0。
因此也有人将输出理解为mask掩码模板,作为mask使用。

将位于颜色在图像上下界当中就可以将颜色单独提取出来,设为白色,不在的设为黑色
 

inRange提取指定色彩范围内的区域共4个参数第1个参数 输入第2个参数 色彩下界第3个参数 色彩上界第4个参数 输出

说明:

HSV色彩空间

HSV相较于BGR色彩空间,颜色的区分度比较明显,对某个颜色来说可以很容易的提取出来。

在这里插入图片描述

2.image.copyTo

更换图像背景,这里利用到了重载的copyTo

当我们传入mask时,这里的copyTo只会拷贝到mask中不为0的像素点,即白色区域(255)

白色区域为背景色重载

inRange提取后,指定色彩区域为255,roi区域为0。
为了利用copyto,我们需要对提取后的图像进行非操作,这样roi区域就会变为255。

copyTo重载的拷贝共2个参数第1个参数 输出第2个参数 输入

2.示例代码

配合copy使用,用一个取反操作变白即可

void QuickDemo::inrange_demo(Mat& image) {Mat dst;cvtColor(image, dst, COLOR_BGR2HSV);Mat mask;inRange(dst, Scalar(100, 43, 46), Scalar(124, 255, 255), mask);imshow("提取", mask);Mat greenback = Mat::zeros(image.size(), image.type());greenback = Scalar(40, 200, 40);bitwise_not(mask, mask);imshow("非", mask);image.copyTo(greenback, mask);/*mask剩下的黑色区域,由greenback填充*/imshow("绿色", greenback);}

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...