opencv-Mask(掩膜)

数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域

图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程

数字图像处理中,掩模为二维矩阵数组,有时也用多值图像,图像掩模主要用于:

①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0

②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计

③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征

④特殊形状图像的制作

复制代码
    cv::Mat src(5, 4, CV_8UC3,cv::Scalar(10, 20, 30));
    std::cerr << src << std::endl;
    cv::Mat mask = cv::Mat::zeros(5, 4, CV_8UC3);

    cv::Rect r1(0,1,2,3);//像素点区域
    /*参数1:起始像素点列号--从0开始
           参数2:起始像素点行号
           参数3:总像素点列数
           参数4:总像素点行数
    */
    mask(r1)=cv::Scalar(5, 6, 7); //给某个区域设置值
    std::cerr << mask << std::endl;
    cv::Mat dst(5, 4, CV_8UC3,cv::Scalar(11, 22, 3));
    std::cerr << dst << std::endl;
    src.copyTo(dst, mask);
    //当mask的值不为0,则将源图像数据拷贝到目标图像;当mask为0,则不进行拷贝,目标图像数据保持不变
    std::cerr << dst << std::endl;
复制代码

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(734)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-10-11 Qt中写自己的动态连接库
2020-10-11 qt--硬件序列号
点击右上角即可分享
微信分享提示