我们目前比较好处理的对象是灰度图,因为它只有一个通道,也就意味着很多计算我们减少了一个维度,自然轻松一些。对于灰度图,首先要了解的是灰度直方图,也就是整体的图像中,灰度值的分布情况,通过直方图的形式来显示图片中是高灰度值的区域偏多还是低灰度值的区域偏多或者是其他情况,来指导我们后续的其他操作。以我们的之前转灰度的图片为例,结合matplotlib.pyplot库绘制归一化直方图的代码如下:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
gray_girl = "C:/Users/60214/Desktop/python_work/DigitalExecution/gray_girl.jpg"
def GrayHist(path, bins = 32):
im = Image.open(path)
imarray = np.array(im)
height, width = imarray.shape
data = imarray.reshape((height*width))
plt.hist(data, normed = 1, bins = bins)
plt.show()
GrayHist(gray_girl)
灰度线性变换。指的是将输入图像中某个点的灰度值,按一定的线性函数规律转化成另外的灰度值,所使用的一维线性函数的形式为