环境:Windows10、Anaconda2(python2.7)
1、直方图
1.1 概念
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。直方图是数值数据分布的精确图形表示。
1.2 实现
代码:
# -*- coding: utf-8 -*-
from PIL import Image # 从PIL库中导入Image
from pylab import * # 将pylab库全部导入
# 添加中文字体支持
from matplotlib.font_manager import FontProperties # 给maplotlib添加中文字体。
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14) # fname指定字体文件
# 第七行的作用是为了消除更换为unicode字体之后0、负数之类的显示异常。
# 之后所有使用中文字体的地方都以u""的形式出现,并指定fontproperties属性为我们的指定的font就行了
# 打开图像,并转成灰度图像
im = array(Image.open('../data/empire.png').convert('L')) # convert()函数,用于不同模式图像之间的转换
# 输出原图
figure()
subplot(1,3,1)
gray() # 绘制图像灰度化
axis('equal') # 表示x轴和y轴的单位长度相同
axis('off') # 关闭所有坐标轴线、刻度标记和标签
imshow(im)
title(u'原图', fontproperties=font)
# 输出图像轮廓
subplot(1,3,2)
gray()
contour(im, origin='image') # contour()检测图像轮廓
axis('equal')
axis('off')
title(u'图像轮廓', fontproperties=font)
# 输出图像直方图
subplot(1,3,3)
hist(im.flatten(), 128) # f