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

运行结果

相关推荐
树獭非懒几秒前
从零构建ReAct智能体:让AI学会边想边做
人工智能·llm·agent
冬奇Lab11 小时前
Workflow 系列(04):Multi-Agent 协调——编排器边界、并发控制与上下文隔离
人工智能·工作流引擎
冬奇Lab11 小时前
每日一个开源项目(第147篇):HyperGraphRAG - 用超图表示 N 元关系,RAG 的第三代范式
人工智能·开源·graphql
甲维斯11 小时前
Github + 阿里云oss实现类似codex的自动更新!
人工智能
阿里云大数据AI技术13 小时前
光轮智能 × 阿里云:共建 Physical AI 云上数据、评测与持续学习基础设施
人工智能·机器学习
机器之心13 小时前
实锤了:Claude Code偷查用户,时区、中国AI实验室全是关键词
人工智能·openai
网易云信13 小时前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
网易云信13 小时前
解锁触手可及的温暖:网易智企 x Wander Puffs AI 云游泡芙
人工智能