1. 程式人生 > >用MATLAB程式設計實現直方圖均衡化

用MATLAB程式設計實現直方圖均衡化

I=imread('mri.tif');%初始化影象
figure,imshow(I)
title('原影象')

%直方圖顯示

[M,N]=size(I);%影象的大小,M為水平畫素點個數,N為垂直畫素點個數
n=zeros(1,256);%計算各灰度級畫素點數
for i=1:M
    for j=1:N
        n(I(i,j)+1)=n(I(i,j)+1)+1;
    end
end

pi=zeros(1,256);%計算各灰度級出現的概率
for i=1:256
    p(i)=n(i)/(M*N);
end

 
s1=zeros(1,256);
for i=1:256
    for j=1:i
        s1(i)=p(j)+s1(i);%直方圖均衡化
    end
end

plot(s1)