当前位置: 首页 > news >正文

OpenCV 图形API(11)对图像进行掩码操作的函数mask()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

描述

对矩阵应用掩码。
该函数mask设置来自给定矩阵的值,如果掩码矩阵中对应的像素值设为true,否则将矩阵的值设为0。
支持的源矩阵数据类型为CV_8UC1、CV_16SC1、CV_16UC1。支持的掩码数据类型为CV_8UC1。
cv::gapi::mask 是 OpenCV GAPI(OpenCV的统一接口)中用于对图像进行掩码操作的函数。

注意

函数的文本ID是"org.opencv.core.math.mask"

函数原型

GMat cv::gapi::mask 	
(
 	const GMat &  	src,
	const GMat &  	mask 
) 	

参数

  • 参数src 输入矩阵。

  • 参数mask 输入掩码矩阵。

代码示例

#include <opencv2/opencv.hpp>
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/imgproc.hpp> 
#include <opencv2/gapi/core.hpp>  // 包含G-API核心功能

int main() {
    // 读取图像和掩码
    cv::Mat src = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/input.jpg");
    cv::Mat mask = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/mask2.png", cv::IMREAD_GRAYSCALE);

    // 定义计算图
    cv::GMat in_src, in_mask;
    cv::GMat out = cv::gapi::mask(in_src, in_mask);  
    cv::GComputation comp(cv::GIn(in_src, in_mask), cv::GOut(out));

    // 执行计算
    cv::Mat output;
    comp.apply(cv::gin(src, mask), cv::gout(output));

    // 保存结果
    cv::imwrite("output.jpg", output);
    cv::imshow("Input", src);
    cv::imshow("Mask", mask);
    cv::imshow("Output", output);
    cv::waitKey(0);

    return 0;
}

运行结果

在这里插入图片描述

http://www.dtcms.com/a/108987.html

相关文章:

  • RK3568 gpio模拟i2c 配置hym8563 RTC时钟
  • 19c21c单机/RAC手工清理标准化文档
  • 中小企业数字化转型的本质:在Websoft9应用平台上实现开源工具与商业软件的统一
  • GitHub 趋势日报 (2025年04月02日)
  • 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2章 Java内存区域与内存溢出异常
  • springboot 启动方式 装配流程 自定义starter 文件加载顺序 常见设计模式
  • 【PHP】PHP网站常见一些安全漏洞及防御方法
  • DM数据库配置归档模式的两种方式
  • NOA是什么?国内自动驾驶技术的现状是怎么样的?
  • 清晰易懂的 Flutter 卸载和清理教程
  • 漫威蜘蛛侠2(Marvel‘s Spider-Man 2)
  • 算法复杂度:从理论到实战的全面解析
  • 电脑文件怎么压缩打包发送?
  • AI大模型重构医药流通供应链:传统IT顾问的转型指南
  • 可灵视频+Runway 双引擎:企业短视频营销 AI 化解决方案
  • Kali Linux 2025.1a:主题焕新与树莓派支持的深度解析
  • 训练出一个模型需要哪些步骤
  • lua表table和JSON字符串互转
  • 【C语言】红黑树解析与应用
  • AIGC6——AI的哲学困境:主体性、认知边界与“天人智一“的再思考
  • 数据一体化/数据集成对于企业数据架构的重要性
  • 移动神器RAX3000M路由器变身家庭云之七:增加打印服务,电脑手机无线打印
  • 智慧农业总体实施方案
  • 线性代数:同解(1)
  • git从历史版本创建新分支或标签
  • 高级:高并发架构面试题深度解析
  • C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
  • 启动arthas-boot.jar端口占用
  • 搜广推校招面经六十六
  • 线程之间是否共享数据