《python计算机视觉编程》读书笔记------6(Numpy篇)
2016-03-18 14:10
288 查看
直方图均衡化:
运行结果:
![](http://img.blog.csdn.net/20160318141027395)
补充:
# -*- coding: utf-8 -*- from PIL import Image from pylab import * from PCV.tools import imtools ''' 图像灰度变换中一个非常有用的例子就是直方图均衡化。 图像均衡化作为预处理操作,在归一化图像强度时是一个很好的方式, 并且通过直方图均衡化可以增加图像对比度。 ''' # 添加中文字体支持 from matplotlib.font_manager import FontProperties font = FontProperties(fname=r"C:/Windows/Fonts/msyh.ttc", size=14) im = array(Image.open('C:/pytm/pic/ceshi.jpg').convert('L')) # 打开图像,并转成灰度图像 #im = array(Image.open('../data/AquaTermi_lowcontrast.JPG').convert('L')) im2, cdf = imtools.histeq(im) figure() subplot(2, 2, 1) axis('off') gray() title(u'原始图像', fontproperties=font) imshow(im) subplot(2, 2, 2) axis('off') title(u'直方图均衡化后的图像', fontproperties=font) imshow(im2) subplot(2, 2, 3) axis('off') title(u'原始直方图', fontproperties=font) #hist(im.flatten(), 128, cumulative=True, normed=True) hist(im.flatten(), 128, normed=True) subplot(2, 2, 4) axis('off') title(u'均衡化后的直方图', fontproperties=font) #hist(im2.flatten(), 128, cumulative=True, normed=True) hist(im2.flatten(), 128, normed=True) show()
运行结果:
补充:
''' 直方图均衡化的变换函数是图像中像素值的累积分布函数,简写cdf,将像素值的范围映射 到目标范围的归一化操作 对一幅灰度图像进行直方图均衡化的函数: def histeq(im,nbr_bins=256):#nbr_bins是直方图中使用小区间的数目 #计算图像的直方图 imhist,bins = histogram(im.flatten(),nbr_bins,normal=True) cdf = imhist.cumsum() #cumulative distribution function cdf = 255* cdf / cdf[-1] #归一化 #使用累积分布函数的线性插值,计算新的像素值 im2 = interp(im.flatten(),bins[:-1],cdf) #函数返回直方图均衡化后的图像,以及累积分布函数 return im2.reshape(im.shape),cdf '''
相关文章推荐
- linux和oracle和tcp的关联
- jetty和html和tcpdump的关联
- weblogic和tcpdump和jsp的关联
- tcp和com和groovy的关联
- HTTP所有状态代码及其定义
- dll和plsql和httpclient的关联
- tcp和linux和tcp的关联
- linux和tcp和android的关联
- 计算机网络基本知识
- groovy和sqlplus和tcp的关联
- samba和tcpdump和sqlplus的关联
- httpclient和lua和c++的关联
- redis和linux和httpclient的关联
- httpclient和oracle和apache的关联
- maven和.net和tcpdump的关联
- openstack网络架构
- 网络编程需要考虑的问题
- 使用Jmeter自带的 Http 代理服务器录制脚本
- http与https的区别
- C语言实现的微型 http 服务器