MATLAB图像均衡化处理

        直方图是多种空间域处理技术的基础。直方图操作能有效地用于图像增强。下面给出两张处理前和处理后的效果图,让其理解什么叫直方图均衡化。

图1 直方图均衡化之前的处理

图2 直方图均衡化后的效果图

    明显地图2比图1更加亮了,说明直方图均衡化具有图像增强的作用。下面我先介绍直方图均衡化的数学原理,再给出程序,这样便于理解。
对于一张灰度图像,假设其每个灰度级的概率在这张灰度图像中出现的概率为 Pr(w),r为归一化后的灰度级,一般灰度值除以最大灰度级,如下式表示为:
                                     r=r i /255,其中1≤i≤255

那么表示其累计概率分布。概率密度函数(PDF)和累计概率分布函数(CDF)分别如图3和图4所示。


图3 一张灰度图像的PDF

图4 一张图像的CDF

   对于均衡化后的灰度图像的CDF如图5所示
  
图5 均衡化后 的CDF


程序中给出了均衡后的直方图。

I=imread('office_2.jpg');
f = rgb2gray(I);
figure
subplot(221);
imshow(f);
L=256;
M=zeros(256,1);
p=zeros(256,1);
c=zeros(256,1);
[m n]=size(f);
for i=1:m
    for j=1:n
        M(f(i,j)+1)=M(f(i,j)+1)+1;
    end
end
    for i=1:256;
        p(i)=M(i)/(m*n);
    end
subplot(222);
bar(p);
for i=1:256
    for j=1:i
        c(i)=c(i)+p(j);
    end
end

max=0;
min=0;
for i=1:m
    for j=1:n
        if(max<f(i,j))
            max=f(i,j);
        else if(min>f(i,j))
                min=f(i,j);
            end
        end
    end
end
for i=1:m
    for j=1:n
        K(i,j)=c(f(i,j)+1)*(max-min)+min;
    end
end
subplot(223);
imshow(K);
for i=1:m
    for j=1:n
        M(f(i,j)+1)=M(f(i,j)+1)+1;
    end
end
    for i=1:256;
        p(i)=M(i)/(m*n);
    end
    subplot(224);
    bar(p);


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值