python直方图均衡化直观理解
来源:互联网 发布:linux oracle rpm安装 编辑:程序博客网 时间:2024/05/20 08:26
直方图均衡化是灰度变化中常用的一种非常有用的变化方式,可以用作增强对比度,思想也比较简单,就是使得变化后的图像每个灰度值概率分布相同。
代码
import numpy as npdef histeq(im,nbr_bins=256): '''对灰度图进行直方图均衡化''' #计算直方图 imhist,bins = np.histogram(im.flatten(),nbr_bins,normed=True) cdf = imhist.cumsum() #累积分布函数 cumulative distribution function cdf = 255*cdf/cdf[-1] #归一化(灰度变换函数) #使用累积分布函数的线性插值,计算新的像素值 im2 = np.interp(im.flatten(),bins[:-1],cdf) return im2.reshape(im.shape),cdf
效果
变换前
变换后
变换函数
直观理解变换函数以及插值的作用
- 计算直方图,知道每个像素值的个数
- 计算累积分布函数,这个函数的本质就是像素个数累加值占总数的比重,也就是一个0~1之间的值
- 当灰度值分布概率相同时,累积分布函数为f(x)=x/255
- 将现在图像的累积分布函数的每个值映射到分布概率相同时应有的值,也就是x=f(x)*255
- 因为在Python里面,这个灰度变换函数不是严格意义上的函数,只是几个点,x轴是bins[:-1],y轴是cdf
- 插值的意思就是生成一个函数,刚好能通过指定点,与拟合的最小二乘逼近还是有点区别的
np.interp(im.flatten(),bins[:-1],cdf)
直接把im.flatten()
的映射值得到
参考
- 《Python计算机视觉编程》
- http://blog.csdn.net/xiajun07061225/article/details/6910129
- http://blog.csdn.net/zrongh/article/details/7302816
0 0
- python直方图均衡化直观理解
- python直方图均衡化
- 直方图均衡化的理解
- chaos python 直方图均衡化
- openCV-直方图以及均衡化理解
- 图像直方图均衡化和直方图匹配的理解
- 直方图均衡化(python实现)
- Python OpenCV -- 直方图均衡化(十三)
- 直方图均衡化处理图像(python)
- python数字图像处理:直方图与均衡化
- 图解直方图均衡化及其Python实现
- 直方图的均衡化(Python)
- 直方图均衡化python代码实现
- opencv-python 绘制直方图和均衡化
- 直方图均衡化、自适应直方图均衡化
- 直方图均衡化推导
- 直方图均衡化
- 直方图均衡化
- 备忘——vbox中安装centos步骤要点
- APK ROM 签名原理
- Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题
- 记录学习的点滴(树形结构数据SQL检索语句)
- Prism4文档翻译(第一章 第五部分)
- python直方图均衡化直观理解
- 在数组中查找出现奇数次的元素
- linux c tool系列------getevent.c
- 【linux】RPM
- 南邮数据结构实验四----各种内排序算法的实现及性能比较
- 搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(二)
- 基于Dubbo协议的项目示例及详细讲解(二)
- GCC 升级4.8 支持c++11
- IO多路复用之epoll