%數字圖像處理器作業
這個程序可以對JPG格式的彩色圖像文件進行灰度化,並進行直方圖均衡化。
%
%輸入文件:要處理的PicSample.jpg圖像。
%輸出文件:PicSampleGray.bmp灰色圖像。
% PicEqual.bmp均衡圖像
%
%輸出圖形窗口描述
%圖號1要處理的彩色圖像
% 2號圖形灰色圖像
%第3號圖形直方圖
%第4號圖形均衡直方圖
%圖5灰度變化曲線
%第6號圖形均衡圖像
% 1,處理後的圖片名稱應該是PicSample.jpg。
% 2,每次程序運行時,工作區將被清空。
%作者;無建築領主
清理所有
% 1,圖像預處理,讀入彩色圖像並使其灰化。
PS = im read(' pic sample . jpg ');%讀取JPG彩色圖像文件
Imshow(PS)%顯示的圖號為1。
標題(“導入的彩色JPG圖像”)
imwrite(rgb2gray(PS),' picsamplegray . BMP ');%灰度化彩色圖片並保存
PS = RGB 2 gray(PS);%灰色數據存儲在數組中。
圖,imshow(PS)%顯示的是灰顯圖像,也是均衡前的樣圖2號。
標題(“灰色圖像”)
% 2,繪制直方圖
[m,n]=大小(PS);%測量圖像尺寸參數
GP =零(1,256);%預先創建壹個矢量,用於存儲灰度概率。
對於k=0:255
GP(k+1)= length(find(PS = = k))/(m * n);%計算每個灰度級的概率,存儲在GP中相應的位置。
結束
圖,bar(0:255,GP,' g')%繪制直方圖圖3。
標題(“原始圖像直方圖”)
Xlabel('灰度值')
Ylabel(“發生概率”)
% 3,直方圖均衡化
s 1 =零(1,256);
因為i=1:256
對於j=1:i
s 1(I)= GP(j)+s 1(I);%計算風險
結束
結束
S2 = round(s 1 * 256);%將Sk到相似的灰度級。
因為i=1:256
GPeq(I)= sum(GP(find(S2 = = I));%計算每個現有灰度級的概率。
結束
圖,bar(0:255,GPeq,' b')%顯示了均衡的直方圖圖4。
標題(“均衡後的直方圖”)
Xlabel('灰度值')
Ylabel(“發生概率”)
圖中,plot(0:255,S2,“r”)%顯示了5號圖的灰度變化曲線
圖例(“灰度變化曲線”)
Xlabel(“原始圖像的灰度”)
Ylabel(“均衡後的灰度”)
% 4,圖像均衡
PA = PS
因為i=0:255
PA(find(PS = = I))= S2(I+1);%將每個像素的歸壹化灰度值分配給該像素。
結束
圖,imshow(PA)%顯示均衡圖像圖6。
標題(“均衡圖像”)
imwrite(PA,' pice qual . BMP ');