MATLAB数字图像处理(二)直方图

(一) 绘制直方图

概念:这里的直方图,主要指图像灰度直方图,它在图像处理中有一定的应用。比如用直方图均衡来增强图像的对比度。
图像灰度直方图:一副数字图像有[0~255]灰度级,直方图定义如下:
h(gk)=nkh(gk)=nk
其中,gkgk是第k个灰度级(如:255),nknk是该灰度级的个数。
归一化直方图定义如下:
p(gk)=h(gk)n=nknp(gk)=h(gk)n=nkn
即:第k个灰度级出现的数量,比上所有灰度级数量总和。

MATLAB中绘制图像灰度直方图:
函数imhist():
h=imhist(img,b);
其中:img是输入图像,b是容器,容器简单说就是分几块显示。设置2,则分成两块显示。设置3,则3块。默认为256即256个灰度级。
若要得到归一化后的图像,那么可利用如下语句。
h_normal=imhist(img,b)/numel(img);
其中numel(img)是求出所有灰度级数量总和,即图像总像素数。
接下来,让我们实际生成一副直方图。
代码如下:

f=imread('Moon Phobos.tif');%读入图片
imhist(f)%图像 直方图
axis([0 255 0 6000])%设置x、y轴坐标范围                 

v2-d958d64dd237c7d281cf26e692393e95_b.jpg

v2-61c6106eed71465e658ee12490fa98ce_b.jpg

通过直方图我们可以看书,图像的灰度级主要集中在两端,分布不够均匀,造成了原图较暗的部分看不清楚。下面将利用直方图均衡化,解决该问题。

(二)直方图均衡化

直方图均衡化的概念,其实很简单,具体概念就不说了。直接说个人理解。

设有 图像共有4个灰度级且归一化,为1/4占50个,2/4占50个,3/4占100个,1占50个。直方图归一化1/4~0.2,2/4~0.2,3/4~0.4,1~0.2。

首先1/4灰度级为,s1s1=0.2,约等于1/4,即灰度级为1/4的对应0.2。
2/4灰度级,s2s2=0.2+0.2,等于1/2,即灰度级为1/2的对应0.2。
3/4灰度级,s3s3=0.2+0.2+0.4,等于1,即灰度级为1的对应0.4(3/4的灰度级)。
1灰度级 ,s4s4=0.2+0.2+0.4+0.2=1,等于1,即灰度级为1的对应0.4+0.2=0.6。
最后求解的灰度级为1/4~0.2,2/4~0.2,1~0.6。
在MATLAB中,函数histeq(f,nlev)可以完成此功能。其中个f为输入图像,nlev为输出图像灰度级。
实例如下:

 f=imread('Moon Phobos.tif');
figure,imshow(f),title('原图');
figure,imhist(f),title('直方图')
g=histeq(f,256);
figure,imshow(g),title('增强后');
figure,imhist(g),title('直方图均衡');

v2-36742f1ac85d712433d2c9f2d6b4d2f5_b.jpg

v2-0fc58a949f935f0267567ca44e268e9a_b.jpg

可以看到,原来有些背面看不见的纹路也可以用观察到了。

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的matlab大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值