C++ opencv给图像添加透明度
时间: 2023-10-10 15:08:54 浏览: 213
在 OpenCV 中,可以使用 `cv::addWeighted()` 函数来给图像添加透明度。
具体步骤如下:
1. 读入原始图像和透明度图像;
2. 将透明度图像转换为灰度图像(如果它还不是灰度图像);
3. 将透明度图像的像素值除以 255,得到透明度值(范围从 0 到 1);
4. 使用 `cv::addWeighted()` 函数将原始图像与透明度图像相加,得到带有透明度的图像。
下面是一个示例代码:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
// 读入原始图像和透明度图像
Mat image = imread("image.png", IMREAD_UNCHANGED);
Mat alpha = imread("alpha.png", IMREAD_GRAYSCALE);
// 将透明度图像的像素值除以 255,得到透明度值(范围从 0 到 1)
alpha.convertTo(alpha, CV_32FC1, 1.0 / 255.0);
// 将原始图像和透明度图像相加,得到带有透明度的图像
Mat result;
cv::addWeighted(image, alpha, Mat::zeros(image.size(), image.type()), 1 - alpha, 0.0, result);
// 显示结果图像
imshow("Result", result);
waitKey(0);
return 0;
}
```
在这个示例中,我们假设原始图像是 `image.png`,透明度图像是 `alpha.png`。请注意,透明度图像必须是单通道灰度图像。如果它不是灰度图像,可以使用 `cvtColor()` 函数将它转换为灰度图像。
阅读全文
相关推荐


















