数字图像处理之灰度图的直方图均衡化

声明:文章中使用的关于直方图函数图里部分来自于电子科技大学 黄捷老师的课件。

在数字图像处理中 对于灰度图像使用直方图均衡化的目的:

        如果一幅图像的像素占据的像素区间高低起伏比较大,并且这副图像的像素有占据整个灰度级并且均匀分布,那么图像可以有高的对比度。实现高对比度说白了就是使图像的像素能够尽可能的分布在尽量多的灰度区间内。

根据概率密度等方面的知识,

数字图像处理之灰度图的直方图均衡化_第1张图片

数字图像处理之灰度图的直方图均衡化_第2张图片数字图像处理之灰度图的直方图均衡化_第3张图片数字图像处理之灰度图的直方图均衡化_第4张图片











































由上面我们已经知道了直方图均衡化的公式,那么我们可以用Matlab进行实验

function grayaverage()
I=imread('two.jpg');
J=I;
[w,l]=size(I);
area=w*l;
a=zeros(1,256);
b=zeros(1,256);
for i=1:w
    for j=1:l
        m=I(i,j)+1;
        a(1,m)=a(1,m)+1;
     end
end
area=255/area;
for i=1:256
    sum=0;
    for j=1:i
        sum=sum+a(1,j);
    end
    b(1,i)=sum*area;
end
for i=1:w
    for j=1:l
        m=J(i,j)+1;
        J(i,j)=b(1,m);
    end
end
subplot(321);imshow(I);
subplot(322);imhist(I);
subplot(323);imshow(J);
subplot(324);imhist(J);
K=histeq(I,256);
subplot(325);imshow(K);
subplot(326);imhist(K);
三幅图像分别是原图以及直方图显示

自己实现直方图均衡化

histeq函数实现直方图均衡化

数字图像处理之灰度图的直方图均衡化_第5张图片

























对比度有点不强呀。不过可以从直方图看出效果。

你可能感兴趣的:(数字图像处理)