- 操作系统: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;
}
运行结果
