zoukankan      html  css  js  c++  java
  • OpenCV掩模mask的原理和作用

    一、什么是掩模mask

    OpenCV中很多函数都带有一个mask参数,mask被称为掩模。图像掩模一般用来对处理的图像(全部或者局部)进行遮挡,来控制图像处理的区域或处理过程。

    二、掩模原理

    掩模一般是小于等于源图像的单通道矩阵,掩模中的值分为两种0和非0。以Mat::copyTo为例,当mask的值不为0,则将源图像拷贝到目标图像,当mask为0,则不进行拷贝,目标图像保持不变。

    源图像            目标图像          mask            源图像拷贝叠加到目标图像上得到新的目标图像

    100  30  55    50  220  210     0    0   0                50  220  210

    20  180  88    99  77  12      255  255  255                  20    180        88

    33  28  110    92  110  115     255  255  255               33        28         110

     三、示例

     1 Mat srcImage = imread("E:\CodeResource\opencv\car_pic\test.jpg");
     2 Mat logoImage = imread("E:\CodeResource\opencv\car_pic\logo.png");
     3 
     4 //255或者1都行,只要非0就行
     5 Mat mask(logoImage.size(),CV_8UC1,Scalar::all(255));
     6 Rect r1(0,10,mask.cols,10);
     7 mask(r1).setTo(0);
     8 
     9 Mat roiImage = srcImage(Rect(100, 100, logoImage.cols, logoImage.rows));
    10 logoImage.copyTo(roiImage, mask);
    11 
    12 imshow("srcImage", srcImage);
    13 waitKey(0);

     

  • 相关阅读:
    2020年3月22日
    2021年3月21日
    2021年3月20日
    人件集阅读笔记02
    2021年3月19日
    2021年3月18日
    2021年3月17日
    2021年3月16日
    2021年3月15日
    梦断代码阅读笔记01
  • 原文地址:https://www.cnblogs.com/justkong/p/7284952.html
Copyright © 2011-2022 走看看