c++ opencv实现矩阵掩膜

掩膜解释

掩膜

简单来说,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。
用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以足胶片、滤光片等。

掩膜的作用

在图片处理中我们通过对图像的掩膜来实现让图像有更高的对比度等,掩膜的实际作用有以下几点:

  • 提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为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)
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进屋先抖雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值