請問求灰度圖的歸一化直方圖時灰度級為負數是怎麼解決,怎麼儲存...

  • 作者:由 匿名使用者 發表于 攝影
  • 2022-11-19

請問求灰度圖的歸一化直方圖時灰度級為負數是怎麼解決,怎麼儲存...

請問求灰度圖的歸一化直方圖時灰度級為負數是怎麼解決,怎麼儲存...匿名使用者 2015-04-14

clear all

%一,影象的預處理,讀入彩色影象將其灰度化

PS=imread(‘s7。jpg’); %讀入JPG彩色影象檔案

figure(1);subplot(2,2,1);imshow(PS);title(‘原影象灰度圖’);

%二,繪製直方圖

[m,n]=size(PS); %測量影象尺寸引數

GP=zeros(1,256); %預建立存放灰度出現機率的向量

for k=0:255

GP(k+1)=length(find(PS==k))/(m*n); %計算每級灰度出現的機率,將其存入GP中相應位置

end

figure(1);subplot(2,2,2);bar(0:255,GP,‘g’) %繪製直方圖

title(‘原影象直方圖’)

xlabel(‘灰度值’)

ylabel(‘出現機率’)

%三,直方圖均衡化

S1=zeros(1,256);

for i=1:256

for j=1:i

S1(i)=GP(j)+S1(i); %計算Sk

end

end

S2=round((S1*256)+0。5); %將Sk歸到相近級的灰度

for i=1:256

GPeq(i)=sum(GP(find(S2==i))); %計算現有每個灰度級出現的機率

end

figure(1);subplot(2,2,4);bar(0:255,GPeq,‘b’) %顯示均衡化後的直方圖

title(‘均衡化後的直方圖’)

xlabel(‘灰度值’)

ylabel(‘出現機率’)

%四,影象均衡化

PA=PS;

for i=0:255

PA(find(PS==i))=S2(i+1); %將各個畫素歸一化後的灰度值賦給這個畫素

end

figure(1);subplot(2,2,3);imshow(PA) %顯示均衡化後的影象

title(‘均衡化後圖像’)

imwrite(PA,‘PicEqual。bmp’);

Top