其他分享
首页 > 其他分享> > MATLAB数字图像处理难点之直方图均匀化理解

MATLAB数字图像处理难点之直方图均匀化理解

作者:互联网

这学期刚学数字图像处理,就遇到了 直方图均匀化这块知识点比较难理解,经过反复的思索总算有所理解。以下是我对直方图均匀化的理解,有不到位之处欢迎指出!
一、概念及作用
首先我们先了解下其概念以及作用,这是个什么玩意,为什么要用这玩意?
官方解释:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法;
而对比度解释如下:对比度是画面黑与白的比值,也就是从黑到白的渐变层次。比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。对比度对视觉效果的影响非常关键,一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。
而直方图均匀化就是要是使图像将占有尽可能多的灰度级并且均匀分布(也就是出现的灰度级出现出现的次数尽可能一样),从而使得图像将具有较高的对比度和较大的动态范围。
说白了就是要使得**就是让其中一些灰度值数量少的点数量变得更少,让某灰度值数量多的点数量变得更多**这样才能够均匀。用matlab举个栗子如下:

X=imread('1112.jpg');
[Y,T]=histeq(X);
subplot(221);
imshow(X);
subplot(222);
imhist(X);
subplot(223);
imshow(Y);
subplot(224);
imhist(Y);

在这里插入图片描述
可以明显看到均衡化后明显更好看!
二、原理解释与说明:
那么怎么才能保证直方图均匀化后既能保证原来的图像的性质保持不变,又能保证均衡化后图像的灰度级数出现的个数尽可能一致?
先说明下为什么灰度级数与其个数可以与概率挂钩:比如有0~255的灰度级数,然后该图像有1024个像素,那么我们便可以令x事件为灰度级数,则该级数出现的个数与总像素的比值便是其概率,如p(x=1)=10/255,表明级数为1的出现次数为10次。
1、对于第一个问题怎么保证原来的图像的性质保持不变
我们可以知道要保证原来图像性质不变,那么必须灰度级数的相对大小不变,并且总像素不变。
我们都知道分布函数
在这里插入图片描述
也就是说我们可以利用分布函数来进行直方图均衡化,因为其积分总是1,对应于我们每个像素出现的概率之和就总是不变。
接下来怎么保证灰度级数的相对大小不变?
在这里插入图片描述
至于原理大家可以翻阅概率论的相关书籍。上图中要保证Y=s(X)单调便可以使得灰度级数的相对大小不变,你看X增Y也增这就保证了。所以Y事件应该就是我们直方图均衡化后的灰度级数。
2、对于第二个问题怎么保证均衡化后图像的灰度级数出现的个数尽可能一致
我们都知道概率论里面的均匀分布,此时其概率密度就是1,也就在我们的灰度级数中对应的个数要几乎一样,那么我只要保证问题1中的

在这里插入图片描述
就可以了,这样我概率密度就出来了。
那么现在处理变换函数Y=s(X),其它条件都有了,这时我们就得根据上面的知识推导处Y和X的变换关系s函数了:
在这里插入图片描述
在这里插入图片描述
然而对于我们图像中的离散灰度级则只需稍微的连续变离散,则直方图均衡化后的灰度级Y与原图像的灰度级X的对照关系为如下(而变换后各个灰度级数出现的个数几乎一样):
在这里插入图片描述

标签:灰度级,均衡化,数字图像处理,直方图,保证,MATLAB,图像,对比度
来源: https://blog.csdn.net/qq_37335890/article/details/88622594