python写直方图均衡化,不用opencv,和函数
时间: 2023-05-15 17:05:00 浏览: 201
python直方图均衡化
可以使用Python的PIL库来实现直方图均衡化,以下是示例代码:
```python
from PIL import Image
def histeq(image_path):
# 打开图像
image = Image.open(image_path).convert('L')
# 获取直方图
hist = image.histogram()
# 计算累积直方图
cdf = [sum(hist[:i+1]) for i in range(len(hist))]
# 计算映射表
lut = [int((cdf[i]-cdf[0])/(image.size[0]*image.size[1]-cdf[0])*255) for i in range(len(cdf))]
# 应用映射表
result = Image.new('L', image.size)
result.putdata([lut[p] for p in image.getdata()])
return result
```
调用该函数并传入图像路径即可实现直方图均衡化。
注意:该代码仅适用于灰度图像。如果要处理彩色图像,需要将图像转换为YUV或HSV色彩空间,对亮度通道进行直方图均衡化。
阅读全文