前言

1.数字图像处理中的掩膜的概念是起源于于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。
2.图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。
3.数字图像处理中,图像掩模主要用于:
①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。
②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
④特殊形状图像的制作。
4.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像。当提取道路或者河流,或者房屋时,通过一个n*n的矩阵来对图像进行像素过滤,然后将我们需要的地物或者标志突出显示出来。这个矩阵就是一种掩膜。

代码演示

1.下面是用掩膜来增加图像对比度的函数,可以看它实现的公式:

**I(i,j)=5∗I(i,j)−[I(i−1,j)+I(i+1,j)+I(i,j−1)+I(i,j+1)]**
void mask(Mat &input, Mat &dest)
{//生成一个和源图像大小相等类型相同的全0矩阵dest = Mat::zeros(input.size(), input.type());//获取图像的列数int cols = (input.cols - 1)*input.channels();//获取图像的行数int rows = input.rows;//获取图像通道数int channel = input.channels();//遍历行数for (int row = 1; row < rows - 1; row++) {//上一行uchar* previous = input.ptr<uchar>(row - 1);//当前行uchar* current = input.ptr<uchar>(row);//下一行uchar* next = input.ptr<uchar>(row + 1);//输出图像的行uchar* output = dest.ptr<uchar>(row);//开始对每个像素做掩膜操作for (int col = channel; col < cols; col++){output[col] = saturate_cast<uchar>(5 * current[col] - (current[col - channel] + current[col + channel] + previous[col] + next[col]));}}
}

测试结果:

OpenCV图像处理使用笔记(二)——图像矩阵的掩膜操作相关推荐

  1. OpenCV图像处理使用笔记(四)——图像融合

    前言常用 1.在OpenCV中定义了好多函数用来操作图像矩阵,有两个矩阵相加的,相减的,混合的,下面我使用QT加OpenCV演示图像融合这个函数. 2.我的IDE是Qt creator,OpenCV的 ...

  2. OpenCV图像处理使用笔记(六)——图像滤波

    前言 1.图像滤波也叫图像模糊,是平滑图像像素常用处理的方式,通常是为了达到减少图像噪声和伪影,或者降低图像分辨率,OpenCV提供了常用的五种图像模糊操作. 2.我的这里演示的系统环境是Linux, ...

  3. OpenCV图像处理使用笔记(五)——图像边界拓展

    前言 1.在OpenCV滤波和卷积算法中,在进行核运算的过程时候,矩阵边界拓展是一个非常重要的处理,OpenCV提供的函数copyMakeBorder()来拓展边界. 2.我的系统环境是Linux,加 ...

  4. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  5. Python+OpenCV图像处理(五)——图像阈值和二值化

    系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...

  6. OpenCV图像处理(7)——图像上写TEXT

    在图像上写字 /* 参数说明: 1.输入输出图像 2.需要写的字符 3.文字的左上角坐标 4.字体 5.标准字体的放大倍数(越大,字体越大) 6... 7... */ putText(copySrc, ...

  7. 转载:矩阵的掩膜操作实现图像对比度调整

    矩阵的掩膜操作实现图像对比度调整 hb707934728 2017-07-04 13:54:17 1170 收藏 最后发布:2017-07-04 13:54:17首发:2017-07-04 13:54 ...

  8. 独家|OpenCV 1.3 矩阵的掩膜操作(附链接)

    翻译:陈之炎 校对:王可汗.林夕本文约1600字,建议阅读5分钟本文为大家介绍了 OpenCV 矩阵的官方教程. 矩阵的掩膜操作(mask)并不难.主要思路为:根据掩膜矩阵(也称为内核kernel)重 ...

  9. Python-OpenCV 笔记2 -- 图像的基本属性和操作

    Python-OpenCV 笔记2 – 图像的基本属性和操作 1.图片基本属性 # 图像的类型 type(image)# 图像的大小,元组(行,列,通道) image.shape# 图像的大小,值为s ...

最新文章

  1. etcd 笔记(04)— etcd 网关与 gRPC 网关
  2. 152斤了,离健康又近了一步
  3. TPS(薄板样条) 2D 插值
  4. 2021年中国科技的脚步依旧不停 我们将走得更广更深更远
  5. Linux运维:查看磁盘空间的大小
  6. linux 编译环境包,linux上war包编译环境搭建(示例代码)
  7. C/C++函数指针与回调函数总结(函数指针数组)
  8. 【今日CV 计算机视觉论文速览】Thu, 28 Mar 2019
  9. html遮罩提示框代码,基于jQuery实现弹出可关闭遮罩提示框实例代码
  10. 随想录(从开源or1k看gcc后端移植)
  11. 【java】doc转pdf
  12. 20191127_朴素贝叶斯多分类
  13. 常见的oracle面试题及答案,Oracle精选面试题(附答案及分析)
  14. php20以内的勾股数,[求助]编程求100以内的所有勾股数
  15. python的一些报错解决
  16. Golang 多版本管理
  17. 在linux服务器上部署禅道环境
  18. java基础理论知识点
  19. “机器学习实战“刻意练习2/8周
  20. IOS之YYModel字典转模型第三方框架的使用

热门文章

  1. python链表的创建_python数据结构之链表的实例讲解
  2. css3 线条出现动画效果,CSS3实现的线条波浪动画效果
  3. vector/list/map/set的插入、删除、遍历 - remove\erase函数
  4. 图片转LaTex公式神器软件
  5. Vue.js 从 Vue 1.x 迁移
  6. 上古时期的 TeX Users 都有哪些当今 TeX Users 无法想象的神级操作?
  7. java学习笔记7--抽象类与抽象方法
  8. 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器
  9. 如何设计一门语言(五)——面向对象和消息发送
  10. 编程之美-找到符合条件的整数