图像处理中的Mask是啥(转)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理中的Mask是啥(转)相关的知识,希望对你有一定的参考价值。

参考技术A

转自-> 这里

刚开始涉及到图像处理的时候,在 OpenCV 等库中总会看到mask这么一个参数,非常的不理解,在查询一系列资料之后,写下它们,以供翻阅。
什么是掩膜(mask)
数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。
图像掩膜与其类似, 用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:

①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。
②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
④特殊形状图像的制作。

掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像。当提取道路或者河流,或者房屋时,通过一个n*n的矩阵来对图像进行像素过滤,然后将我们需要的地物或者标志突出显示出来。这个矩阵就是一种掩膜。

glStencilFunc中mask参数的作用是啥

【中文标题】glStencilFunc中mask参数的作用是啥【英文标题】:What is the role of mask parameter in glStencilFuncglStencilFunc中mask参数的作用是什么 【发布时间】:2019-12-28 04:07:29 【问题描述】:

在函数中

glStencilFunc(GLenum func, GLint ref, GLuint mask)

掩码的作用是什么,我们正在发送 ref 值并且缓冲区内容正在与 ref 值进行比较,而不是我们需要发送掩码值?

我读到的关于掩码值的内容是“与参考值和存储的模板值进行 AND 运算的掩码”,但我们为什么需要它?

【问题讨论】:

【参考方案1】:

这完全取决于您使用模板做什么。一些模板操作将模板值视为一个整数,为了某些效果或目的而增加和/或减少模板值。其他操作将其用作位掩码,其中模板值中的每个位或位组代表特定的东西。也就是说,从语义的角度来看,您有多个值恰好存储在相同的 8 位空间中。

mask 值适用于此类情况。您可能有 8 个单独的遮罩区域,并且您希望针对其中一个区域渲染一些几何图形。您可以使用mask 参数来指定哪个位(指定区域)来屏蔽一块几何体。

【讨论】:

【参考方案2】:

它还允许您通过交换“ref”和“mask”的值来控制写入模板缓冲区的值。

通常,glStencilFunc 会针对 ref 进行 检查,如果片段通过测试,ref 也会写入 到模板缓冲区。这限制了您可以执行的操作,因为您只能对您随后编写的位掩码进行操作。

但由于 AND 是对称的,maskref 实际上是完全相同的参数,不同之处在于 ref 将写入缓冲区。

【讨论】:

以上是关于图像处理中的Mask是啥(转)的主要内容,如果未能解决你的问题,请参考以下文章

图像处理中掩膜(mask)的意义

无法使用 rasterio.mask 剪辑图像

详解掩膜mask

数据增强——python opencv 找出图像中的最大轮廓并填充(生成mask)——python 轮廓内部填充

R-CNN和Mask R-CNN在图像分割中的应用史

对于 Mask RCNN 模型,较小的图像对 OpenCV 中的推理时间几乎没有影响