import cv2#导入opencv库
import matplotlib.pyplot as plt#调用画图的库
img = cv2.imread('timg.jpg',0) #0:读为读为灰度图像,1:读成彩色图像
res = cv2.equalizeHist(img)#直方图均衡化,归一化图像亮度和增强对比度
#createCLAHE:将图片分成很多小块,对每一小块进行直接直方图均衡化。
#clipLmit : 大于该参数的部分将被剪裁掉平均分配给整个图像
#tileGridSize : 表示每次处理块的大小。
#一般的clipLimit设置的值是40,值越大,均化的效果越好,值越接近0,就和原图像没什么区别
clahe = cv2.createCLAHE(clipLimit=2,tileGridSize=(10,10))
#创建一种clahe的方法
cl1 = clahe.apply(img)
#调用clahe 进行图像处理
#plt.subplot : 类似matlab的subplot(131)创建第一个子图
plt.subplot(131),plt.imshow(img,'gray')#显示原图
plt.subplot(132),plt.imshow(res,'gray')#显示直方图均衡化,使得亮的地方附近也过于亮
plt.subplot(133),plt.imshow(cl1,'gray')
#plt.imshow只表示对图片进行处理,并显示其格式,但不能显示,后面跟着plt.show()才能显示
plt.show()