12 图像色彩空间转换 – 进阶

12 图像色彩空间转换 - 进阶

opencv知识点:

  • 色彩空间转换 - cvtColor()
  • 提取指定色彩范围区域 - inRange()
  • 更换图像背景 - copyTomask用法

本课所解决的问题:

  • 如何提取指定色彩范围的区域?
  • 如何更换图像的背景?

1.HSV色彩空间

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

109634d8546a4c0a800648c617cef741

2.提取指定色彩范围区域

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

关于inRange的提取原理

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

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

程序:

//函数定义
void inrange_demo(Mat& image);           //   .h文件

//函数实现
void QuickDemo::inrange_demo(Mat& image) {                   //    .cpp

	Mat dst;
	cvtColor(image, dst, COLOR_BGR2HSV);
	/*
	为了提取指定色彩范围内的区域,我们先把图像转换为HSV色彩空间
	*/

	Mat mask;
	inRange(dst, Scalar(100, 43, 46), Scalar(124, 255, 255), mask);
	imshow("提取", mask);
}

ef46aaa358a58a8c38678c35d7954eb

3.更换图像背景

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

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

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

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

程序:

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);

}

3af7c8d927bde5de7baa61fe5621c20

本课所用API查阅

OpenCV 4.6.0 官方文档

cvtColor()

img *= 1./255;
cvtColor(img, img, COLOR_BGR2Luv);

inRange()

copyTo()

原文链接: https://www.cnblogs.com/L707/p/17048780.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    12 图像色彩空间转换 - 进阶

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/311731

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 下午12:07
下一篇 2023年2月16日 下午12:07

相关推荐