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"

函数原型

cpp 复制代码
GMat cv::gapi::mask 	
(
 	const GMat &  	src,
	const GMat &  	mask 
) 	

参数

  • 参数src 输入矩阵。

  • 参数mask 输入掩码矩阵。

代码示例

cpp 复制代码
#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;
}

运行结果

相关推荐
猫头虎3 分钟前
Claude Code 2026 年1月9日迎来大更新:Agent 能力增强(2.1.0 详解 + 升级指南)
ide·人工智能·macos·langchain·编辑器·aigc·ai编程
子午6 分钟前
【2026原创】中草药识别系统实现~Python+深度学习+模型训练+人工智能
人工智能·python·深度学习
编码小哥14 分钟前
OpenCV特征匹配:暴力匹配与FLANN匹配实战
人工智能·opencv·计算机视觉
数字游民952719 分钟前
网站备案全流程回放(腾讯云)
人工智能·git·github·腾讯云·网站备案·waytoopc
飞哥数智坊22 分钟前
3位实战分享、6个案例展示,TRAE Friends@济南第二场圆满完成
人工智能·ai编程·trae
xiaobaishuoAI23 分钟前
全链路性能优化实战指南:从瓶颈定位到极致优化
大数据·人工智能·科技·百度·geo
人工小情绪23 分钟前
深度学习模型部署形式
人工智能·深度学习
AI_567825 分钟前
零基础学Linux:21天从“命令小白”到独立部署服务器
linux·服务器·人工智能·github
乾元27 分钟前
如何把 CCIE / HCIE 的实验案例改造成 AI 驱动的工程项目——从“实验室能力”到“可交付系统”的完整迁移路径
大数据·运维·网络·人工智能·深度学习·安全·机器学习
GZKPeng27 分钟前
pytorch +cuda成功安装后, torch.cuda.is_available 是False
人工智能·pytorch·python