灰度世界算法python
时间: 2023-11-18 22:57:13 浏览: 33
以下是灰度世界算法的Python实现:
```python
import cv2
import numpy as np
def gray_world(img):
# 计算RGB三个通道的平均值
avg_R = np.mean(img[:, :, 0])
avg_G = np.mean(img[:, :, 1])
avg_B = np.mean(img[:, :, 2])
# 计算RGB三个通道的平均值的平均值
avg = (avg_R + avg_G + avg_B) / 3
# 计算每个通道的增益系数
Kr = avg / avg_R
Kg = avg / avg_G
Kb = avg / avg_B
# 对每个通道进行增益
img[:, :, 0] = img[:, :, 0] * Kr
img[:, :, 1] = img[:, :, 1] * Kg
img[:, :, 2] = img[:, :, 2] * Kb
# 对增益后的像素值进行截断,保证像素值在0-255之间
img[img > 255] = 255
img = np.round(img).astype(np.uint8)
return img
# 读取图像
img = cv2.imread('test.jpg')
# 调用灰度世界算法
img_gray_world = gray_world(img)
# 显示原图和处理后的图像
cv2.imshow('Original', img)
cv2.imshow('Gray World', img_gray_world)
cv2.waitKey(0)
cv2.destroyAllWindows()
```