个人资料,仅供学习使用
学习课程:OpenCV4 图像处理与视频分析实战教程——贾志刚
04 图像位运算+mask掩膜及案例
opencv知识点:
- 绘制矩形 - rectangle()
- 位运算 - 四种逻辑操作
- 色彩空间转换 - cvtColor()
- 提取指定色彩范围区域 - inRange()
- 更换图像背景 - copyTo的mask用法
本课所解决的问题:
- 如何绘制矩形?
- 绘制图形的最后一个参数shift有什么作用?
- 如何对图像进行位运算?
- 什么是mask?
- 如何提取指定色彩范围的区域?
- 如何更换图像的背景?
1.图像位运算
关于图像的位运算,可以阅读 10 图像像素的逻辑操作,文章中非常详细。
2.mask
在官方文档中四种位运算函数中都有mask
这个参数,它是什么呢?
什么是掩膜(mask)
引用文章:
数字图像处理中的掩膜的概念是借鉴于PCB制版的过程。
在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:
- 在硅片上选定的区域中对一个不透明的图形模板遮盖
- 继而下面的腐蚀或扩散将只影响选定的区域以外的区域
光学图像处理中,掩模可以是胶片、滤光片等。
数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。
图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部) 进行遮挡,来控制图像处理的区域或处理过程。
数字图像处理中,图像掩模主要用于:
- ①提取感兴趣区(ROI区域) 用预先制作的感兴趣区掩模与待处理图像相乘(相当于与运算),得到感兴趣区图像, 感兴趣区内图像值保持不变,而区外图像值都为0。
- ②屏蔽作用 用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
- ③结构特征提取 用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
- ④特殊形状图像的制作
mask示例
原图中的每个像素和掩膜中的每个对应像素进行与运算。
比如一个3 * 3的图像与3 * 3的掩膜进行运算,得到的结果图像就是:
mask模板的创建与使用
mask的模板有多种方法创建,但基本所有方法都要注意一下两点
- mask图像大小必须和原图像一致
- mask图像类型必须为CV_8UC1
//这里示范一种
Mat mask = Mat::zeros(src.size(),CV_8UC1);
/* 创建之后再经过一系列操作,把计划选定的区域置为255 */
/*
…………………………
…………………………
*/
使用的时候,我们只需要在传参的时候传入即可,后该API就只会对原图像中,对应mask图像中值为255的区域操作了。
3.mask实战案例
最后,我们通过一个案例来加深对mask的理解 12 图像色彩空间转换 - 进阶
本课所用API查阅
rectangle()
bitwise_and()
bitwise_or()
bitwise_not()
bitwise_xor()
cvtColor()
img *= 1./255;
cvtColor(img, img, COLOR_BGR2Luv);
inRange()
copyTo()