python怎么实现灰度图对比增强
时间: 2023-05-04 10:04:47 浏览: 74
灰度图像的对比增强是指提高图像中不同灰度级之间的差异,使图像看起来更清晰、更鲜明。Python中可以通过以下步骤实现灰度图像对比增强:
1. 加载灰度图像:使用OpenCV库的cv2.imread()函数加载灰度图像,并将其转换为numpy数组。
2. 计算直方图:使用numpy库的histogram()函数计算图像的直方图,得到每个像素值的个数。
3. 计算累积直方图:使用numpy库的cumsum()函数计算直方图的累积分布函数,得到每个像素值的累积个数。
4. 计算灰度级映射表:将累积直方图归一化,得到0到255之间的映射表,用于将输入图像的像素值映射到输出图像的像素值。
5. 应用灰度级映射表:对输入图像的每个像素值根据灰度级映射表进行映射,得到输出图像的像素值。
6. 显示输出图像:使用OpenCV库的cv2.imshow()函数显示输出灰度图像。
代码示例:
import cv2
import numpy as np
# 1. 加载灰度图像
img = cv2.imread('gray_img.png', cv2.IMREAD_GRAYSCALE)
# 2. 计算直方图
hist, bins = np.histogram(img.ravel(), 256, [0, 256])
# 3. 计算累积直方图
cum_hist = np.cumsum(hist)
# 4. 计算灰度级映射表
map_table = (255 * cum_hist / cum_hist[-1]).astype(np.uint8)
# 5. 应用灰度级映射表
out_img = cv2.LUT(img, map_table)
# 6. 显示输出图像
cv2.imshow('Output Image', out_img)
cv2.waitKey(0)
cv2.destroyAllWindows()