資源描述:
《實驗二__圖像的灰度變換增強(qiáng)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實驗二圖像的灰度變換增強(qiáng)一、實驗?zāi)康?、理解數(shù)字圖像處理中點運(yùn)算的基本作用;2、掌握對比度調(diào)整與灰度直方圖均衡化的方法。二、實驗原理1、對比度調(diào)整如果原圖像f(x,y)的灰度范圍是[m,M],我們希望對圖像的灰度范圍進(jìn)行線性調(diào)整,調(diào)整后的圖像g(x,y)的灰度范圍是[n,N],那么下述變換:就可以實現(xiàn)這一要求。MATLAB圖像處理工具箱中提供的imadjust函數(shù),可以實現(xiàn)上述的線性變換對比度調(diào)整。imadjust函數(shù)的語法格式為:J=imadjust(I,[low_inhigh_in],[low_outhigh_out])J=imadjust(I,[low_inhigh_in]
2、,[low_outhigh_out])返回原圖像I經(jīng)過對比度調(diào)整后的新圖像J。其中[low_inhigh_in]為原圖像中要變換的灰度范圍,[low_outhigh_out]指定了變換后的灰度范圍,灰度范圍可以用[]空矩陣表示默認(rèn)范圍,默認(rèn)值為[0,1](注意:灰度范圍只能在0~1之間)。例:I=imread('pout.tif');J=imadjust(I,[0.30.7],[]);%輸出灰度范圍為默認(rèn)范圍,即為[0,1]imshow(I),figure,imshow(J)不使用imadjust函數(shù),利用matlab語言直接編程也很容易實現(xiàn)灰度圖像的對比度調(diào)整。但運(yùn)算的過程中應(yīng)
3、當(dāng)注意以下問題,由于我們讀出的圖像數(shù)據(jù)一般是uint8型,而在MATLAB的矩陣運(yùn)算中要求運(yùn)算變量為double型(雙精度型)。因此讀出的圖像數(shù)據(jù)不能直接進(jìn)行運(yùn)算,必須將圖像數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù)。MATLAB中提供了這樣的圖像數(shù)據(jù)類型轉(zhuǎn)換函數(shù):im2double函數(shù),其語法格式為:I2=im2double(I1)該函數(shù)將I1的各元素除以255后轉(zhuǎn)換為0~1內(nèi)的雙精度型數(shù)據(jù)。運(yùn)算之后的圖像數(shù)據(jù)再顯示時可以再轉(zhuǎn)化成uint8型,格式為:I3=im2uint8(I2)該函數(shù)將I2的各元素乘以255后轉(zhuǎn)換為0~255內(nèi)的uint8型數(shù)據(jù),其中小于0的元素均設(shè)置為0,大于255的元素均設(shè)
4、置為255。線性運(yùn)算示例:K1=imread('pout.tif');I=im2double(K1);J=I*0.43;K2=im2uint8(J);subplot(1,2,1),imshow(K1)subplot(1,2,2),imshow(K2)非線性運(yùn)算示例:K1=imread('pout.tif');I=double(K1);Dm=double(max(max(K1)));J=(Dm/2)*(1+(1/sin(pi/4))*sin((pi/2)*((I/Dm)-0.5)));K2=uint8(J);subplot(1,2,1),imshow(K1)subplot(1,2,
5、2),imshow(K2)注意:函數(shù)double、uint8與im2double、im2uint8不同,它們僅僅對數(shù)據(jù)作類型轉(zhuǎn)換,而不對數(shù)據(jù)作范圍限定。2、直方圖均衡化直方圖均衡化的目的是將原始圖像的直方圖變?yōu)榫夥植嫉男问?,即將一已知灰度概率密度分布的圖像,經(jīng)過某種變換變成一幅具有均勻灰度概率密度分布的新圖像,從而改善圖像的灰度層次。MATLAB圖像處理工具箱中提供的histeq函數(shù),可以實現(xiàn)直方圖的均衡化。對于灰度圖像,histeq函數(shù)的基本調(diào)用格式為J=histeq(I,n)該函數(shù)返回原圖像I經(jīng)過直方圖均衡化處理后的新圖像J。n為指定的均衡化后的灰度級數(shù),缺省值為64。例:
6、I=imread('pout.tif');J=histeq(I);subplot(2,2,1),imshow(I);subplot(2,2,2),imhist(I,64);subplot(2,2,3),imshow(J);subplot(2,2,4),imhist(J,64);對于索引圖像,調(diào)用格式為:Newmap=histeq(X,map)返回值Newmap將是輸出圖像的新的調(diào)色板。利用matlab語言直接編程也很容易實現(xiàn)直方圖均衡化處理。三、實驗內(nèi)容及要求1、用MATLAB在自建的文件夾中建立example2.m程序文件。在這個文件程序中,將girl2.bmp(或pout.t
7、if、lenna2.bmp等)一幅灰度圖像文件讀出,顯示它的圖像及灰度直方圖(可以發(fā)現(xiàn)其灰度值集中在一段區(qū)域)。用imadjust函數(shù)將它的灰度值調(diào)整到[0,1]之間,并觀察調(diào)整后的圖像與原圖像的差別,調(diào)整后的灰度直方圖與原灰度直方圖的區(qū)別;改變灰度值調(diào)整范圍,觀察調(diào)整后的圖像的變化及其與原圖像的差別,調(diào)整后的灰度直方圖的變化及其與原灰度直方圖的區(qū)別。進(jìn)一步利用改變圖像灰度值調(diào)整范圍,實現(xiàn)圖像的明暗反轉(zhuǎn),觀察比較原圖與反轉(zhuǎn)后的圖像。程序:?A=imread('E:1girl2