我们来看一个灰度图像,让表示灰度出现的次数,这样图像中灰度为 的像素的出现概率是

 是图像中全部的灰度数, 是图像中全部的像素数,  实际上是图像的直方图,归一化到 

把  作为相应于  的累计概率函数, 定义为:

 是图像的累计归一化直方图。

我们创建一个形式为  的变化,对于原始图像中的每一个值它就产生一个 ,这样  的累计概率函数就能够在全部值范围内进行线性化,转换公式定义为:

注意 T 将不同的等级映射到  域。为了将这些值映射回它们最初的域,须要在结果上应用以下的简单变换:

上面描写叙述了灰度图像上使用直方图均衡化的方法。可是通过将这样的方法分别用于图像RGB颜色值的红色、绿色和蓝色分量,从而也能够对彩色图像进行处理。

Python:cv2.equalizeHist(src[, dst]) → dst
C:void cvEqualizeHist(const CvArr* src, CvArr* dst)
Parameters:
  • src – Source 8-bit single channel image.
  • dst – Destination image of the same size and type as src .

The function equalizes the histogram of the input image using the following algorithm:

  1. Calculate the histogram  for src .

  2. Normalize the histogram so that the sum of histogram bins is 255.

  3. Compute the integral of the histogram:

  4. Transform the image using  as a look-up table: 

The algorithm normalizes the brightness and increases the contrast of the image.

# -*- coding: utf-8 -*-
#code:myhaspl@myhaspl.com
import cv2
fn="test1.jpg"
myimg=cv2.imread(fn)
img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)
newimg=cv2.equalizeHist(img)
cv2.imshow('src',img)
cv2.imshow('dst',newimg)
cv2.waitKey()
cv2.destroyAllWindows()

本博客全部内容是原创,假设转载请注明来源

http://blog.csdn.net/myhaspl/

直方图均衡化通经常使用来添加很多图像的全局对照度,尤其是当图像的实用数据的对照度相当接近的时候。

通过这样的方法,

亮度能够更好地在直方图上分布。这样就能够用于增强局部的对照度而不影响总体的对照度

本博客全部内容是原创,假设转载请注明来源

http://blog.csdn.net/myhaspl/

# -*- coding: utf-8 -*-
#code:myhaspl@myhaspl.com
#直方图均衡化
import cv2
import numpy as np
fn="test5.jpg"
myimg=cv2.imread(fn)
img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)
h=img.shape[0]
w=img.shape[1]
newimg=np.zeros((h,w),np.uint8)
scount=0.0
#原始图像灰度级
scol={}
#目标图像灰度级
dcol={}
#原始图像频度
Ps={}
#累计概率
Cs={}#统计原始图像灰度级
for m in xrange(h):for n in xrange(w):scol[img[m,n]]=scol.setdefault(img[m,n],0)+1scount+=1

下图左为源图。右图为进行直方图均衡化后的图

转载于:https://www.cnblogs.com/yxwkf/p/5169103.html

数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)相关推荐

  1. python中值滤波去除反光_数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)...

    Blurs an image using the median filter.C++:void medianBlur(InputArray src, OutputArray dst, int ksiz ...

  2. python sobel滤波,数学之路-python计算实战(22)-机器视觉-sobel非线性滤波

    sobel非线性滤波,采用梯度模的近似方式 Sobel Calculates the first, second, third, or mixed image derivatives using an ...

  3. OpenCV-Python实战(8)——直方图均衡化

    OpenCV-Python实战(8)--直方图均衡化 0. 前言 1. 灰度直方图均衡化 2. 颜色直方图均衡化 3. 对比度受限的自适应直方图均衡化 4. 比较 CLAHE 和直方图均衡化 5. 直 ...

  4. Python爬虫实战 | (14) 爬取人民网滚动新闻

    在本篇博客中,我们将使用selenium爬取人民网新闻中滚动页面的所有新闻内容,包括题目.时间.来源.正文,并存入MongoDB数据库.网址:http://news.people.com.cn/ 打开 ...

  5. Python办公自动化实战 14 | Python-docx库:Python与Word的完美结合_ 教你更多的实战技巧:段落缩进、行间距、页眉页脚、分页符

    一.专题内容简介 本次专题任务主要讲解了前面任务没有涉及到的其他高级特性如:段落缩进,段落间距,页眉页脚,添加分页符等等. 二.专题案例效果 部分代码截图: 三.专题内容 3.1.设置段落缩进 (1) ...

  6. python 简单图像处理(8) 直方图均衡化

    直方图均衡化就是把一已知灰度概率分布的图像经过一种变换使之演变成一幅具有均匀灰度概率分布的新图像 它是以累积分布函数变换法为基础的直方图修正法 我们来看看直方图的含义 还是以上次我们讲的例子为例 我们 ...

  7. python统计图像灰度直方图_python 对一幅灰度图像进行直方图均衡化

    from PIL import Image from pylab import * from numpy import * def histeq(im,nbr_bins = 256): "& ...

  8. [Opencv](python)直方图均衡化与直方图比较

    1,直方图均衡化 (Histogram Equalization) 假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低.直方图均衡化,对图像进行非线性拉伸,重新分 ...

  9. python语言实战-Python实战-从菜鸟到大牛的进阶之路 pdf完整版

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,现在它已经成为最受欢迎的程序设计语言之一.本专题收录了Python编程实战教程,分享给大家. 适用人群:Python 进阶学习者.W ...

最新文章

  1. Linux之文本搜索命令 grep
  2. ubuntu和windows实现互相之间远程控制
  3. android 9格式吗,Android Studio中关于9-patch格式图片的编译错误
  4. linux 复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
  5. 从中关村的小小柜台,但目前市值千亿元的公司
  6. 光纤传输与网络技术作业(第一部分)
  7. python按键按下改变数值_「正点原子NANO STM32开发板资料连载」第十六章电容触摸按键实验...
  8. awvs12 Server Exception_使用WebSocket搭建服务器server
  9. 时间换算(UTC是世界协调时,BJT是北京时间)
  10. Android系统的JNI原理分析(四)- JNI的jni.h头文件
  11. Java字节码角度分析多态原理 ——提升硬实力8
  12. php字符串函数处理emoji,PHP中处理内容含有emoji表情的几种方式
  13. 中台渐入佳境,云徙科技的有所为与有所不为
  14. Ubuntu Kylin使用docker单机部署Fate联邦学习框架
  15. android 虚拟键 高度,Android,获取虚拟键盘的高度
  16. [为梦想,千里行] 评论:35岁前买房没出息,说对了一半
  17. Oracle与MySql函数的转化
  18. 将css导入html中
  19. 2022-2028全球汽车发电机用集电环行业调研及趋势分析报告
  20. 进程间的通信和套接字是什么关系???

热门文章

  1. 基于S2SH的电子商务网站系统性能优化
  2. anaconda在ubuntu中添加环境变量
  3. mysql grant查看用户权限命令
  4. python settings模块导入不了_无法导入设置“myproject.settings”(是否在sys.path上?):没有名为pinax的模块...
  5. VScode前端开发常用插件
  6. Python实战应用-Clumper库函数全解析
  7. java rsa 117_java实现RSA非对称加密解密
  8. 符合c语言常量12abc,《C语言》试题abc合2006上.doc
  9. qt linux webservice,Qt实现访问WebService
  10. python 读取sqlite存入文件_如何通过python读取sqlite数据文件