cv2.addWeighted函数的用法
时间: 2024-11-27 19:20:16 浏览: 83
`cv2.addWeighted()` 是 OpenCV(计算机视觉库)中的一个函数,用于根据给定的权重对两个图像进行加权求和操作,常用于图像融合、调整亮度和对比度等场景。该函数的基本语法如下:
```python
cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])
```
参数说明:
1. `src1`: 第一个源图像或灰度级数组。
2. `alpha`: 对第一个源图像元素值的第一个权重。范围通常为0到1之间,其中1表示完全保留,0表示完全忽略。
3. `src2`: 另一个源图像或灰度级数组,如果存在则与`src1`相加。如果不提供,`src1`将直接被修改。
4. `beta`: 对第二个源图像元素值的第二个权重,同`alpha`。
5. `gamma`: 伽马校正因子。默认值为0,当不使用伽马校准时可以省略。
6. `dst`: 目标输出图像。如果不指定,则会在原地修改`src1`。
7. `dtype`: 输出图像的数据类型,如`cv2.CV_8U`(8位无符号单元格),默认值取决于输入数据类型。
以下是一个简单的例子,将两个图像按照给定权重融合:
```python
import cv2
import numpy as np
# 加载两个图像
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
# 将它们转换为浮点数以便于权重应用
image1_float = image1.astype(np.float32)
image2_float = image2.astype(np.float32)
# 定义权重(这里假设我们想更多地考虑image1)
alpha = 0.7
beta = 0.3
# 使用addWeighted函数
result = cv2.addWeighted(image1_float, alpha, image2_float, beta, 0)
# 如果需要,可以将结果转换回原始图像类型并保存
result = result.astype(image1.dtype)
cv2.imwrite('output.jpg', result)
```
阅读全文