opencv图像叠加c++代码
时间: 2023-09-18 13:09:44 浏览: 209
以下是一个简单的opencv图像叠加c代码示例:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image1 = imread("image1.jpg"); // 读取第一张图像
Mat image2 = imread("image2.jpg"); // 读取第二张图像
Mat result; // 创建结果图像
addWeighted(image1, 0.5, image2, 0.5, 0, result); // 叠加两张图像
imshow("Result", result); // 显示结果图像
waitKey(0); // 等待按键输入
return 0;
}
```
在这个示例中,我们使用了OpenCV的`addWeighted()`函数来叠加两张图像。这个函数的前四个参数分别是:
1. 第一张图像
2. 第一张图像的权重
3. 第二张图像
4. 第二张图像的权重
第五个参数是可选的,它是一个偏移量,可以用来调整结果图像的亮度。在这个示例中,我们将它设置为0。
最终的结果图像保存在`result` Mat对象中,然后使用`imshow()`函数显示出来。`waitKey()`函数用于等待用户按下一个键,然后退出程序。
相关问题
c+++opencv实现png透明图像叠加在jpg图像上
使用OpenCV实现PNG透明图像叠加在JPG图像上可以按照以下步骤进行操作:
第一步,导入所需的库:
```
import cv2
```
第二步,加载JPG和PNG图像:
```
background = cv2.imread('background.jpg')
foreground = cv2.imread('foreground.png', cv2.IMREAD_UNCHANGED)
```
第三步,提取PNG图像的Alpha通道:
```
alpha = foreground[:,:,3]
```
第四步,将PNG图像的RGB通道与Alpha通道分离:
```
foregroundRGB = foreground[:,:,0:3]
```
第五步,将PNG图像的RGB通道根据Alpha值融合到JPG图像上:
```
rows, cols, channels = foregroundRGB.shape
roi = background[0:rows, 0:cols]
gray = cv2.cvtColor(alpha, cv2.COLOR_GRAY2BGR)
maskedForeground = cv2.multiply(foregroundRGB, gray)
maskedBackground = cv2.multiply(roi, 255 - gray)
blended = cv2.add(maskedForeground, maskedBackground)
background[0:rows, 0:cols] = blended
```
第六步,保存结果图像:
```
cv2.imwrite('result.jpg', background)
```
通过以上步骤,就实现了将PNG透明图像叠加在JPG图像上的操作。
c++opencv增强图像亮的部分
您可以使用OpenCV中的addWeighted函数来增强图像的亮的部分。该函数可以将两个图像进行加权叠加,其中一个图像的权重可以设置为0,另一个图像的权重可以设置为1,这样就可以增强图像的亮的部分。
以下是一个示例代码:
```c++
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat image = imread("image.jpg");
Mat bright = Mat::zeros(image.size(), image.type());
double alpha = 1.5; // 增强系数
double beta = 50; // 增强偏移量
addWeighted(image, alpha, bright, 0, beta, bright);
imshow("Original Image", image);
imshow("Brightened Image", bright);
waitKey(0);
return 0;
}
```
在上面的代码中,我们使用了addWeighted函数来将原始图像和一个全黑的图像进行加权叠加。我们将原始图像的权重设置为alpha,将全黑图像的权重设置为0,增强偏移量设置为beta。通过调整alpha和beta的值,您可以自由地控制图像的亮度。
阅读全文