MATLAB中histeq的原理以及自写的具体实现函数

1.什么是直方图?

直方图是数字图像处理中一个简单而重要的常用工具,它从总体上刻画了一幅图像的灰度内容。

具体来说,直方图描述的是图像中具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标为图像中具有该灰度级的像素个数。由于灰度级的大小为0-255,故横坐标的数值范围为0-255.

其语法格式为:

J=histeq(I,hgram);

J=histeq(I,n);

[J,T]=histeq(I);

注:hgram为归一化(各元素均在[0,1]上)的灰度直方图。

[J,T]=histeq(I);返回图像J的同时也返回变换向量。

2.直方图的基本数学原理

直方图均衡化方法可以产生一幅灰度级分布概率均匀的图像。以概率论中的概率密度和分布函数为基础,在这里我们举例来理解直方图的概念。

比如有如下图像矩阵数据

图像矩阵数据

代表着数值为4的个数有5个,数值为6的个数有6个,数值为8的个数有4个,数值为10的个数有5个

则直方图为

直方图

真实的直方图是灰度级是从0-255的,上图应该讲灰度级为0的也标注出来才是正确的。

原图中,灰度级为6的大小为6,直方图均衡化之后,灰度级为6的大小为20*(0.25+0.55)=14.

通过上述原理,我们不难发现,概率密度表示对应的某一灰度级数在图片中出现的概率,某一灰度级数的分布函数值则表示小于等于该灰度级数的所有灰度值在图片中所占概率。(概率论课本上的)

正如前文所述,直方图均衡化作用在于将原始直方图变为更均匀分布的图片。因此,基于上述数学原理,我们便可在此基础上推出直方图均衡化的实现原理:

用分布函数代替概率密度函数,实现熵最大化。

自制函数为:

f=imread('tire.tif');

[m,n]=size(f);
f1=im2uint8(ones(m,n));

h=imhist(f);
I=length(h);

%概率密度
fx=h/numel(f);

%分布函数
FX=cumsum(fx);

%获得均衡化之后的灰度直方图
j=FX.*256;
J=round(j);
%由于灰度级为1-256之间的整数,
%故需对拓展之后的灰度灰度级数取整才有意义。

%将拓展后的的灰度级数对应映射到图片中。

%由于灰度级数为1-256之间的整数,故需对扩展之后的灰度级数取整才有意义,
%得到的J矩阵为1X256大小,表示扩展之前的灰度级数,其中每个级数对应   %元素的值为该灰度级数扩展后的灰度级数值。如J(2)=24,表示原始灰%%%%度 直方 图 为2灰度值
%的地方经灰度扩展后其灰度值为24
for  i=1:I  %I=256
    old=find(J==i); %找出扩展后的级数对应的扩展前的级数
    L=length(old);
    for k=1:L %m每一个n*n的
         oldlocation=find(f==(old(k)-1));%找到拓展前的灰度级数对应的像素点
        f1(oldlocation)=i;
    end
end
subplot(1,2,1),imhist(f1)
subplot(1,2,2),imshow(f1);

在这我们以tire.tif这张图片作为例子

如果用MATLAB自带的函数实现,如下:

x=imread('tire.tif');

y=histeq(x);

subplot(2,2,1),imhist(x);

subplot(2,2,2),imhist(y);

subplot(2,2,3),imshow(x);

subplot(2,2,4),imshow(y);

结果如图:

MATLAB自带函数结果图

再用我以直方图均衡化为原理自制的函数运行,结果如下图

自制函数结果图

可以发现均衡化之后的图片与原图几乎一致,但是所呈现的直方图,在灰度级150之后均衡效果很差,需要改善。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容