(1)、了解掩码操作时,肯定会产生这样子的疑问:什么是掩码?有什么作用么?会对图像有什么样的效果?
官方解释如下:
矩阵的掩码操作很简单。其思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。
如掩码(也称为内核)kernel=[0,-1,0;
-1,5,-1;
0,-1,0]
在opencv中一般这样表达:
Mat kern = (Mat_<char>(3,3) << 0, -1, 0,
-1, 5, -1,
0, -1, 0);
其原图像像素的转化公式为:
(2)、实现掩码操作的方法有两种,一种是访问像素,一种是采用Filter2D;
Filter2D方式:
filter2D(I,//源图像
K, //输出图像
I.depth(), //源图像的深度
kern );//掩码矩阵
注:掩码矩阵的中心值以及边界值影响着图像的像素以及亮度;
从下图可以看出掩码后的图片亮度会相对高点;
正在加载.....