掩膜解释
掩膜
简单来说,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。
用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以足胶片、滤光片等。
掩膜的作用
在图片处理中我们通过对图像的掩膜来实现让图像有更高的对比度等,掩膜的实际作用有以下几点:
- 提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。
- 结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
特殊形状图像的制作。 - 屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
掩膜示例
现在来看对一张照片掩膜后的变化
下图是掩膜前
对其掩膜后变成如下:
肉眼可见差别还是挺大的,掩膜后的图片明显对比度提高了
既然如此,那么接下来就看掩膜的具体操作
掩膜的具体操作
操作公式及图例解释
几个小基础点
RGB图片的灰度值,通道的理解
获取图片像素指针
有点不好懂,可看后面实例的解释
像素范围处理函数
在图片矩阵中,每一个像素块的值应该在0-255之间,但通过上面的公式操作可能会导致该像素块实际值不在0-255内,因此要通过该公式将像素块的值调整到0-255以内。
掩膜的实际操作1(纯自己写,原理)
#include <iostream>
#include<opencv2/opencv.hpp>
#include<math.h>
using namespace cv;
using namespace std;
int main()
{
cout << "Hello World!\n";
Mat img, src;
img = imread("C:/uy_ik.jpg");
if (!img.data)