pythonopencv白平衡
时间: 2023-11-20 08:59:12 浏览: 35
以下是使用Python OpenCV进行白平衡的代码示例:
```python
import cv2 as cv
# 读取图像
img = cv.imread(r'F:\images\11.jpg')
# 分离通道
b, g, r = cv.split(img)
# 求各个通道所占增益
r_avg = cv.mean(r)[0]
g_avg = cv.mean(g)[0]
b_avg = cv.mean(b)[0]
k = (r_avg + g_avg + b_avg) / 3
kr = k / r_avg
kg = k / g_avg
kb = k / b_avg
# 对各个通道进行增益调整
r = cv.addWeighted(src1=r, alpha=kr, src2=0, beta=0, gamma=0)
g = cv.addWeighted(src1=g, alpha=kg, src2=0, beta=0, gamma=0)
b = cv.addWeighted(src1=b, alpha=kb, src2=0, beta=0, gamma=0)
# 合并通道
balance_img = cv.merge([b, g, r])
# 显示结果
cv.imshow('balance_img', balance_img)
cv.waitKey(0)
cv.destroyAllWindows()
```
以上代码中,我们首先使用`cv.imread()`函数读取图像,然后使用`cv.split()`函数将图像分离成三个通道。接着,我们分别计算出三个通道的平均值,并求出各个通道所占的增益。最后,我们使用`cv.addWeighted()`函数对各个通道进行增益调整,并使用`cv.merge()`函数将三个通道合并成一张图像。最终,我们使用`cv.imshow()`函数显示结果。