图像的基本操作与处理
1.图像的轮廓与直方图
绘制图像轮廓(或其他二维函数的等轮廓线)在工作中非常有用。因为绘制轮廓需要对每个坐标[x,y]的像素值施加同一个阈值,所以首先需要将图像灰度化(将convert参数设置为L,L 为8位像素黑白图)。
直方图是数值数据分布的精确图形表示。它是一种条形图。图像的灰度直方图表征的是该图像的灰度分布。
绘图都可以调用matplotlib.pyplot库来进行,其中的hist函数可以直接绘制直方图。hist() 函数的第二个参数指定小区间的数目。需要注意的是,因为 hist() 只接受一维数组作为输入,所以我们在绘制图像直方图之前,必须先对图像进行压平处理。flatten() 方法将任意数组按照行优先准则转换成一维数组。
from PIL import Image
from pylab import *
if __name__=='__main__':
im = array(Image.open('1.jpg').convert('L'))
figure()
gray()
contour(im,origin='image')
axis('equal')
axis('off')
figure()
hist(im.flatten(),128)
show()
下面是运行结果: