python代码 对图片进行光照均匀化
时间: 2023-09-03 12:02:18 浏览: 101
光照均匀化是一种对图片进行处理的方法,可以帮助我们在不同的图片之间达到一致的光照效果。下面是一个用Python实现光照均匀化的示例代码。
```python
import cv2
import numpy as np
def histogram_equalization(image):
# 将图片转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 计算灰度直方图
hist, bins = np.histogram(gray_image.flatten(), 256, [0, 256])
# 计算累积分布函数
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
# 使用累积分布函数进行均衡化
equalized_image = np.interp(gray_image.flatten(), bins[:-1], cdf_normalized)
# 将均衡化后的图像重新进行形状修改
equalized_image = equalized_image.reshape(gray_image.shape)
# 将均衡化后的图像转换回RGB色彩空间
equalized_image = cv2.cvtColor(equalized_image, cv2.COLOR_GRAY2BGR)
return equalized_image
# 读取图片
image = cv2.imread('input.jpg')
# 进行光照均匀化处理
processed_image = histogram_equalization(image)
# 展示结果
cv2.imshow('Original Image', image)
cv2.imshow('Processed Image', processed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码首先需要将图片转换为灰度图像,然后计算灰度直方图,接着计算累积分布函数,并使用累积分布函数进行均衡化处理。最后将处理后的图像转换回RGB色彩空间,展示原图和处理后的图像。
阅读全文