利用直方图均衡化和直方图规定化对图像进行增强

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用直方图均衡化和直方图规定化对图像进行增强
利用直方图均衡化和直方图规定化对图像进行增强
4.1 利用直方图均衡化对图像进行增强
通过灰度变换将一幅图像转换为另一幅具有均衡直方图的图像,即在一定灰度范围内具有相同的象素点数的图像的过程。

其“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

主要缺点:
1、变换后图像的灰度级减少,某些细节消失;
2、某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

算法如下:
为讨论方便,以r 和s 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。

即1,0≤≤s r
在[0,1]内设有变换
S=T(r)
且该函数单调递增,1)(0≤≤r T ,于是有反变换)(1s T r -=
有概率论知,如果已知随即变量r 的概率密度)(r p r ,而随机变量s 是r 的函数。

则s 的概率密度)(s p s 可以有)(r p r 求出。

[])()()()()(1s T ds d r p ds dr r p dr r p ds d s p r r r r s -∞-===?
从上式可以看出通过变换函数)(r T 可以控制图像灰度级的概率密度函数,从而改变图像灰度层次,这就是直方图修正技术的基础。

因为归一化规定 1)(=s p s
有1式有 dr r p ds r )(=
两边积分得 dr r p r T s r
r )()(0?==
上式就是所求得的变换函数。

它表明当变换函数)(r T 是原图像直方图累积分布函数时,能达到直方图均衡化的目的。

离散形式可表示为:
∑∑
=====k
i i k i i r k k n n r p r T s 00)()(
可见均衡后的各像素的灰度值k s 可直接由原图像的直方图算出。

在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出k r 到k s 的灰度映射关系。

在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。

源代码如下:
Clear;
A=imread(…pout.tif?);
B=imadjust(A);
imwrite(B,'E:\5.tif'); %图像保存
subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图
subplot(2,2,2); imhist(A);
subplot(2,2,3); imshow(B);
subplot(2,2,4); imhist(B);
4.2 利用直方图规定化对图像进行增强
在实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。

换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。

直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。

直方图规
定化就是针对上述思想提出来的。

其增强原理及步骤如下:
1、先对原始的直方图均衡化:)(r T s =
2、同时对规定的直方图均衡化:)(z G v =
3、由于都是均衡化,故令v s =,则:)]([)(11r T G v G z --==。

源代码如下:
Clear;
A=imread(…E:\7.tif?,?tif?); %读入待处理图像
B=imread(…pout.tif?); %读入规定图像
[count,hagram]=imhist(B);
C=imadjust(A, hagram); %直方图规定化
imwrite(C,'E:\5.tif'); %图像保存
subplot(3,2,1);
imshow(A); %显示调整前后图像及其直方图 subplot(3,2,2);
imhist(A); subplot(3,2,3);
imshow(B); subplot(3,2,4);
imhist(B); subplot(3,2,3);
imshow(C); subplot(3,2,4);
imhist(C);。

相关文档
最新文档