极智AI | 图像处理中对掩膜mask和ROI的理解

简介: 大家好,我是极智视界,本文介绍一下 图像处理中对掩膜 mask 和 ROI 的理解。

大家好,我是极智视界,本文介绍一下 图像处理中对掩膜 mask 和 ROI 的理解。

掩膜的概念之前在传统图像处理中用的比较多,而进来深度学习中比较火热的如:(1) 自监督中用 mask 做一些 类似 "完形填空" 的数据增强;(2) swin transformer 等新模型中对于 mask 的一些应用等。以上可以看出 mask 在深度学习领域也能发展重要作用。为了更好的表达,这里我们用传统图像处理的方式来介绍 mask 和 ROI,和深度学习中使用的 mask 原理上是一样的。


1. 对 ROI 的理解

对 ROI 的理解较简单,ROI 即感兴趣区域,即要操作的区域。


2. 对掩模的理解

  • 掩模是 8 位单通道图像 (灰度图 / 二值图);
  • 掩模某个位置如果为 0,则在此位置上的操作不起作用;
  • 掩模某个位置如果不为 0,则在此位置上的操作会起作用,即 ROI 区域;
  • 可以用来提取不规则 ROI;

示意:

source      mask       dst
125 100 85   0  0  0   0  0  0
66  25  35   0 255 0   0  25 0
120 125 100  0  0  0   0  0  0


3. 为什么要用图像掩模

对于规则的 ROI,比如最常用的正矩形(Rect)来说可以很容易获取到感兴趣区域的图像数据,如下:

for(int y = rect.tl().y; y < rect.br().y; ++y)
{
  uchar* imgRow = img.data + y * img.step;
  for(int x = rect.tl().x; x < rect.br().x; ++x)
  {
    imgRow[x]...;
  }
}

但是对于不规则的 ROI,则很难直接提取到感兴趣区域内的图像数据,这个时候掩模的作用就体现出来了。假设掩模图像尺寸和源图像的大小一致,则:

cv::Mat dst = cv::Mat::zeros(Size(img.cols, img.rows), CV_8UC1);
for(int y = 0; y < img.rows; ++y)
{
  uchar* imgRow = img.data + y * img.step;
  uchar* maskRow = mask.data + y * img.step;
  uchar* dstRow = dst.data +y * img.step;
  for(int x = 0; x < img.cols; ++x)
  {
    if(maskRow[x] > 0)
    {
      dstRow[x] = imgRow[x]...;
    }
  }
}


4. 使用掩膜进行图像融合

使用掩模实现图像融合示例:

以上将右侧 opencv 的 Logo 融合到左侧 车辆图像中,可以发现一个特点是:opencv Logo 是不规则的,这个时候用一个和 右侧原图一样大小的 mask 来做掩膜是很合适的。图像融合后的效果如下:


好了,以上分享了 图像处理中对掩膜 mask 和 ROI 的理解,希望我的分享能对你的学习有一点帮助。


logo_show.gif

相关文章
|
5月前
|
机器学习/深度学习 存储 人工智能
极智AI | 周易AIPU算法部署仿真测试
本教程详细记录了使用周易 AIPU 进行算法部署仿真测试的方法,带大家尝尝鲜。
194 0
|
3月前
|
机器学习/深度学习 人工智能 文字识别
通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值
通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值
76 1
|
5月前
|
机器学习/深度学习 人工智能 算法
极智AI | 谈谈多通道img2col的实现
大家好,我是极智视界,本文来谈谈 多通道img2col的实现。
72 1
|
5月前
|
人工智能 JSON API
极智AI | 三谈昇腾CANN量化
大家好,我是极智视界,本文介绍一下 三谈昇腾CANN量化。
41 1
|
5月前
|
人工智能 API Python
极智AI | 再谈昇腾CANN量化
大家好,我是极智视界,本文介绍一下 再谈昇腾CANN量化。
70 1
|
5月前
|
人工智能 算法 数据格式
极智AI | 谈谈昇腾CANN量化
大家好,我是极智视界,本文介绍一下 谈谈昇腾CANN量化。
68 0
|
5月前
|
人工智能 自然语言处理 算法
极智AI | TensorRT API构建模型推理流程
大家好,我是极智视界,本文介绍一下 TensorRT API 构建模型推理流程。
351 1
|
5月前
|
人工智能 Ubuntu C++
极智AI | ncnn模型转换及量化流程
本文介绍一下 ncnn 模型转换及量化流程,以 from_darknet yolov4 为例。
156 0
|
5月前
|
机器学习/深度学习 人工智能 PyTorch
极智AI | GAN应用于玻璃表面水珠样本生成
大家好,我是极智视界,本文介绍一下 GAN 应用于玻璃表面水珠样本生成的方法。
46 0
极智AI | GAN应用于玻璃表面水珠样本生成
|
5月前
|
机器学习/深度学习 人工智能 并行计算
极智AI | deepstream6.0部署yolov3和yolov4教程
大家好,我是极智视界,本文介绍了使用 deepstream6.0 部署 yolov3 和 yolov4 的方法。
159 0

热门文章

最新文章