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;
}

运行结果

相关推荐
Apache Flink1 分钟前
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
人工智能·flink·apache
索迪迈科技7 分钟前
登顶 NAVSIM!博世最新IRL-VLA:逆强化学习重构自动驾驶VLA闭环训练
人工智能·重构·自动驾驶
Dfreedom.15 分钟前
在Windows上搭建GPU版本PyTorch运行环境的详细步骤
c++·人工智能·pytorch·python·深度学习
confiself23 分钟前
AndroidWorld+mobileRL
人工智能·深度学习
aneasystone本尊32 分钟前
学习 Chat2Graph 的任务分解与执行
人工智能
嘀咕博客33 分钟前
10Web-AI网站生成器
人工智能·ai工具
西柚小萌新39 分钟前
【从零开始的大模型原理与实践教程】--第一章:NLP基础概念
人工智能·自然语言处理
人生游戏牛马NPC1号44 分钟前
学习 Android (二十一) 学习 OpenCV (六)
android·opencv·学习
嘀咕博客1 小时前
SafeEar:浙大和清华联合推出的AI音频伪造检测框架,错误率低至2.02%
人工智能·音视频·ai工具
深度学习lover1 小时前
<数据集>yolo梨幼果识别数据集<目标检测>
python·yolo·目标检测·计算机视觉·数据集