直⽅图均衡化与直⽅图规定化的MATLAB实现
⽂章⽬录
1.直⽅图均衡化
对图像进⾏⾮线性拉伸,重新分配图像像元值,使⼀定灰度范围内像元值的数量⼤致相等就是直⽅图的均衡化。原来直⽅图中间的峰顶部分对⽐度得到增强,⽽两侧的⾕底部分对⽐度降低,输出图像的直⽅图是⼀个较平的分段直⽅图:如果输出数据分段值较⼩,会产⽣粗略的分类的视觉效果。
在MATLAB中,histeq函数⽤于直⽅图的均衡化。
实现代码如下
clear
close all
clc
I=imread('peppers.png');
subplot(221)
I=rgb2gray(I);
imshow(I)
title('原始图像')
subplot(222)
imhist(I)
title('原始图像直⽅图')
I1=histeq(I);
subplot(223)
imshow(I1)
title('图像均衡化')
subplot(224)
imhist(I)
title('直⽅图均衡化')
从MATLAB2007a开始,提供了⼀个新的函数adapthisteq,该函数限定对⽐度适应性直⽅图均衡化,它先对图像的局部块进⾏直⽅图均衡化,然后利⽤双线性插值⽅法把各个⼩块拼接起来,以消除局部造成的边界。代码如下:
clear
close all
clc
A=imread('cell.tif');
subplot(131)
imshow(A)
title('原始图像')
B=histeq(A);
subplot(132)
imshow(B)
title('histeq函数作⽤效果')
C=adapthisteq(A);
subplot(133)
imshow(C);
title('adapthisteq函数作⽤效果');
2.直⽅图规定化
所谓直⽅图规定化,就是通过⼀个灰度映像函数,将原灰度直⽅图改造成所希望的直⽅图。所以直⽅图修正的关键就是灰度映像函数。直⽅图规定化是⽤于产⽣处理后有特殊直⽅图图像的⽅法。令Pr(V)和Pz(Z)分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均做直⽅图均衡化处理,应有
由于都是作直⽅图均衡化处理,所以处理后的原图像的灰度概率密度函数Ps(S)及理想图像的灰度概率密度函数Pv(V)是相等的。因此,可以⽤变换后的原始图像灰度级S代替上式中的V,即
利⽤此式可以从原始图像得到希望的图像灰度级。对离散图像有
综上所述,数字图像的直⽅图规定化算法如下:
(1)将图像进⾏直⽅图均衡化处理,求出原图像中每⼀个灰度级ri所对应的变换函数Si;
(2)对给定直⽅图做类似计算,得到理想图像中每⼀个灰度级Zi所对应的函数Vi;
(3)出Vi≈Si的点对,并映射到Zi;
(4)求出Pi(Zi);
代码如下:
clear
局部直方图均衡化close all
clc
I=imread('tire.tif');
subplot(221)
imshow(I);
title('原始图像')
hgram=50:2:250;%规定化函数
J=histeq(I,hgram);
subplot(222)
imshow(J)
title('图像规定化')
subplot(223)
imhist(I,64)
title('原始图像直⽅图')
subplot(224)
imhist(J,64)
title('规定化后直⽅图')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。