ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

16位或8位单通道图像直方图均衡化算法原理与实现

2020-09-10 19:33:20  阅读:727  来源: 互联网

标签:E8% E9% E5% 均衡化 E6% E7% 96% 直方图 单通道


文章目录

理论知识来源:
直方图均衡化算法原理与实现
直方图均衡化

16位或者8位直方图实现代码:
直方图均衡(支持单通道16位和8位图像).rar


直方图均衡化的介绍

直方图均衡化是一种简单有效的图像增强技术,通过改变图像的直方图来改变图像中各像素的灰度,主要用于增强动态范围偏小的图像的对比度。原始图像由于其灰度分布可能集中在较窄的区间,造成图像不够清晰。

例如,过曝光图像的灰度级集中在高亮度范围内,而曝光不足将使图像灰度级集中在低亮度范围内。

采用直方图均衡化,可以把原始图像的直方图变换为均匀分布(均衡)的形式,这样就增加了像素之间灰度值差别的动态范围,从而达到增强图像整体对比度的效果。

换言之,直方图均衡化的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并,从而增大对比度,使图像清晰,达到增强的目的。

直方图均衡化原理

我们知道提高图像对比度的变换函数f(x)f(x)f(x)需要满足一下条件:

  1. f(x)在0<=x<=L−1上单调递增(不要求严格单调递增),其中L表示灰度级(L=256)
  2. f(x)的范围是[0,L−1]

我们知道当图像直方图完全均匀分布的时候,此时图像的熵是最大的(随机变量每个值的概率都相同时,概率最大),图像对比度是最大的。所以,理想情况下,图像经过变换函数f(x)变换后,直方图能够均匀分布,此时对比度是最大的。

那问题来了?怎样的变换函数具有如此神奇的功能呢?
在图像处理中,有一个重要的函数,能够满足上面的条件:

其中px​(x)表示概率密度函数,在离散的图像中,表示直方图的每个灰度级的概率(在图像中,灰度级就可以看成是一个随机变量,而直方图就是该随机变量的概率密度函数),由概率论的知识,我们可以知道,变换函数f(x)其实就是连续型随机变量x的分布函数,表示的是函数下方的面积。

分布函数的两个性质:1.单调不减 2.值域为[0,1],我们可以知道f(x)满足条件1和2

有人可能会有这个疑问?图像是离散的,为什么可以用连续的来表示呢?从数学角度来看,离散是连续的一种特例(图像就是一个很好的例子)

下面我们证明变换后的直方图是均匀的。
由概率论知识,变换后的概率密度:

由变上限函数求导法则可知:

反函数的导数等于原函数导数的倒数,所以

在这里插入图片描述
所以:

看到了吧,变换后的概率密度函数是一个均匀分布,对于图像来说,就是每个灰度级概率都是相等的,达到了我们的目的。

下面我们需要将这个变换函数转换为图像中的表达,图像中,我们可以知道,可以使用求和代替积分,差分代替微分,所以上述的变换函数就是:
其中h(x)表示直方图中每个灰度级像素的个数, w和 h分别表示图像的宽和高。

手工实现直方图均衡化

了解直方图均衡化的原理之后,我们以一个简单的例子来手工计算均衡化后的图像。这里我们假设存在以下这张图像(假定图像的灰度级范围是 [0, 9]):
原始图像

标签:E8%,E9%,E5%,均衡化,E6%,E7%,96%,直方图,单通道
来源: https://www.cnblogs.com/psfwd/p/13647717.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有