Python:简单的数字图像处理
测试原图
1.直方图
1.1 直方图原理
直方图:图像的直方图描述图像的灰度级和对应灰度级在图像中出现的次数(频率)的关系,通过直方图可以进行图像分割、检索、分类等操作
matplotlib库的hist函数:hist函数能够帮助绘制直方图。它的参数很多,这里用到前两个参数:x、bins。x参数表示一个像素的一维数组,如果是一维以上的数组可以使用flatten方法展平成一维,一般来说读入一幅图片都是一个二维的矩阵,都需要进行展平的操作。bins参数表示要显示直方图的柱数
1.2 绘制图片轮廓与直方图
代码:
from PIL import Image
from pylab import *
# 解决中文乱码
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#
im = array(Image.open('tracer.png').convert('L')) # 打开图像,并转成灰度图像
print(im)
figure()
subplot(121)
gray()
contour(im, origin='image') # 画图
axis('equal') # 自动调整比例
axis('off') # 去除x y轴上的刻度
title(u'图像轮廓')
subplot(122)
# flatten()函数可以执行展平操作,返回一个一维