的步骤如下:
#include <iostream>
#include <opencv2/opencv.hpp>
cv::Mat mask = cv::imread("mask.png", cv::IMREAD_GRAYSCALE);
cv::Mat inputImage = cv::imread("input.png");
这里假设蒙版图像为mask.png,输入图像为input.png。
cv::resize(mask, mask, inputImage.size());
cv::Mat outputImage(inputImage.size(), CV_8UC4, cv::Scalar(0, 0, 0, 0));
for (int i = 0; i < inputImage.rows; i++) {
for (int j = 0; j < inputImage.cols; j++) {
if (mask.at<uchar>(i, j) > 0) {
outputImage.at<cv::Vec4b>(i, j)[3] = 255; // 设置透明度为不透明
}
}
}
inputImage.copyTo(outputImage, mask);
cv::imwrite("output.png", outputImage);
这里假设输出图像保存为output.png。
这样,使用CPP和OpenCV从蒙版和输入图像创建透明的PNG图像的过程就完成了。
推荐的腾讯云相关产品:腾讯云图像处理(Image Processing)服务,该服务提供了丰富的图像处理能力,包括图像格式转换、图像裁剪、图像缩放、图像旋转、图像水印、图像滤镜等功能,可用于图像处理的各种场景。
腾讯云图像处理产品介绍链接地址:https://cloud.tencent.com/product/imgpro
领取专属 10元无门槛券
手把手带您无忧上云