2014專業(yè)綜合實驗指導(dǎo)書_第1頁
2014專業(yè)綜合實驗指導(dǎo)書_第2頁
2014專業(yè)綜合實驗指導(dǎo)書_第3頁
2014專業(yè)綜合實驗指導(dǎo)書_第4頁
2014專業(yè)綜合實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

專業(yè)綜合實驗指導(dǎo)書――數(shù)字圖像處理(電子信息專業(yè)用)長春工業(yè)大學(xué)計算機科學(xué)與工程學(xué)院數(shù)字圖像處理課程組一、目的和意義專業(yè)綜合實驗旨在將圖像處理基礎(chǔ)理論論述與軟件實踐方法相結(jié)合,指導(dǎo)學(xué)生如何解決圖像處理過程中經(jīng)常遇到的實際問題,提高學(xué)生的綜合素質(zhì)。所選擇的軟件工具來自公認的科學(xué)計算方面的引領(lǐng)者MathWorks公司的MATLAB圖像處理工具箱,它為數(shù)字圖像處理提供了一個穩(wěn)定、寬泛的軟件實現(xiàn)平臺,其在教育和工業(yè)應(yīng)用中同樣占有優(yōu)勢。本書重點強調(diào)了圖像處理的基本問題的實現(xiàn),幫助學(xué)生鞏固對相關(guān)理論知識的理解。二、實驗要求結(jié)合圖像處理的基本知識,培養(yǎng)學(xué)生運用MATLAB軟件進行編程并仿真實現(xiàn),提高軟件設(shè)計和編程能力。通過分析實驗結(jié)果,總結(jié)及撰寫技術(shù)分析報告。三、主要儀器設(shè)備及環(huán)境微機Pentium4以上,32M以上內(nèi)存,安裝好WINDOWSXP以上、MATLAB7.0等有關(guān)軟件。四、實驗內(nèi)容(一)常規(guī)實驗項目1.實驗一圖像顯示2.實驗二圖像變換3.實驗三圖像增強4.實驗四圖像分割5.實驗五圖像壓縮6.實驗六圖像運算與區(qū)域處理(二)綜合設(shè)計性實驗項目1.設(shè)計一醫(yī)學(xué)圖像邊緣檢測(血細胞、血管、肝臟等)2.設(shè)計二車牌圖像定位、識別3.設(shè)計三印刷字符分割、手寫體數(shù)字識別4.設(shè)計四圖像編碼算法研究(Huffman、游程編碼、香農(nóng)編碼等)5.設(shè)計五運動圖像復(fù)原算法設(shè)計6.設(shè)計六指紋圖像特征提取算法設(shè)計7.設(shè)計七彩色圖像增強算法設(shè)計實驗一圖像顯示實驗?zāi)康腗ATLAB的圖像處理工具箱提供了多種圖像顯示和顏色、光照技術(shù)。本實驗將具體介紹Matlab中用于圖像顯示、顏色轉(zhuǎn)換的各個函數(shù)的具體用法。實驗要求學(xué)習(xí)圖像讀取、顯示及保存方法。學(xué)習(xí)特殊圖像顯示技術(shù)學(xué)習(xí)圖像顏色模型轉(zhuǎn)換技術(shù)實驗內(nèi)容讀取圖像使用函數(shù)imread可以將圖像讀入MATLAB環(huán)境,imread的語法為imread('filename')其中,filename是一個含有圖像文件全名的字符串(包括任何可用的擴展名)。注意,此處的單引號用以界定filename字符串。如命令行>>f=imread('d:\image\rice.tif');將TIFF圖像rice.tif讀入圖像數(shù)組f。命令行結(jié)尾處的分號用于取消輸出。若命令行未包含分號,則MATLAB會立即顯示該行命令的運算結(jié)果。MATLAB桌面工具條上的當前目錄窗口會顯示MATLAB的當前工作路徑。當filename中不包含任何路徑信息時,imread會從當前目錄中尋找并讀取圖像文件。函數(shù)size可以給出一幅圖像的行數(shù)和列數(shù):>>size(f)ans=256256也可使用如下形式自動確定一幅圖像的大小:>>[M,N]=size(f);將返回圖像的行數(shù)(M)和列數(shù)(N)。顯示圖像使用函數(shù)imshow來顯示圖像,該函數(shù)在顯示圖像的同時創(chuàng)建了一個圖形圖像句柄對象,可以通過句柄的一些參數(shù)設(shè)置顯示模式。例1顯示灰度圖像J=imread('eight.tif');subplot(121);imshow(J,[100,200]);%在灰度范圍[100,200]內(nèi)顯示圖像subplot(122);imshow(J,20);%以灰度等級20顯示圖像當用imshow顯示另一幅圖像時,MATLAB會在屏幕上用新圖像替換舊圖像。為保持第一幅圖像并同時顯示第二幅圖像,可以使用figure函數(shù):顯示二值圖像BW=imread('circles.tif');imshow(BW)%顯示二值圖像figure(2)imshow(~BW)%顯示顏色反轉(zhuǎn)后的二值圖像保存圖像使用函數(shù)imwrite可以將圖像寫到磁盤上,該函數(shù)的語法為imwrite(f,'filename')若filename中不包含路徑信息,則imwrite會將文件保存到當前的工作目錄中。另一種常見但只適用于JPEG圖像的函數(shù)語法是imwrite(f,'filename.jpg','quality',q)其中,q是一個在0到100之間的整數(shù)(由于JPEG壓縮,q越小,圖像的退化就越嚴重)。4.特殊圖像顯示技術(shù)添加顏色條I=imread('saturn.tif');H=[121;000;-1-2-1];I2=filter2(h,I);imshow(I2,[]),colorbar例4顯示多圖像序列mri=uint8(zeros(128,128,1,27));forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);endimshow(mri(:,:,:,3),map);例5顯示多幀圖像mri=uint8(zeros(128,128,1,27));forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);end%montage(mri,map);例6動畫顯示mri=uint8(zeros(128,128,1,27));forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);endmov=immovie(mri,map);movie(mov);練習(xí)使用:zoomon,zoomoff,imresize,imadjust,subimage,imrotate,imcrop,warp例7把真彩色圖像映射到柱面上[x,y,z]=cylinder;RGB=imread('eight.tif');warp(x,y,z,RGB);5.圖像顏色轉(zhuǎn)換技術(shù)(1)褪色函數(shù)imapprox,rgb2ind圖像的褪色[X,map]=imread('canoe.tif');[Y,newmap]=imapprox(X,map,20);imshow(X,map)figure,imshow(Y,newmap)(2)練習(xí)使用顏色模型轉(zhuǎn)換函數(shù):rgb2hsv,hsv2rgb,ntsc2rgb,rgb2ntsc,rgb2ycbcr,ycbcr2rgb,rgb2gray,im2bwrgb2hsv函數(shù)—將RGB模型轉(zhuǎn)換為HSV模型。其調(diào)用格式如下:hsvmap=rgb2hsv(rgbmap)將RGB空間中m×3的色彩表rgbmap轉(zhuǎn)換成HSV色彩空間的顏色映射表hsvmap;HSV=rgb2hsv(RGB)將真彩色圖像RGB轉(zhuǎn)換為HSV色彩空間中的圖像HSV。rgb2ntsc函數(shù)——將RGB模型轉(zhuǎn)換為NTSC模型。其調(diào)用格式如下:yiqmap=rgb2ntsc(rgbmap)將RGB空間中m×3的色彩表rgbmap轉(zhuǎn)換成YIQ色彩空間的顏色映射表yiqmap;YIQ=rgb2ntsc(RGB)將真彩色圖像RGB轉(zhuǎn)換為YIQ色彩空間中的圖像YIQ。rgb2ycbcr函數(shù)——將RGB模型轉(zhuǎn)換為YCbCr模型。其調(diào)用格式如下:ycbrmap=rgb2ycbcr(rgbmap)將RGB空間中的色彩表rgbmap轉(zhuǎn)換成YCbCr空間中的顏色映射表ycbrmap;Ycbcr=rgb2ycbcr(RGB)將真彩色圖像RGB轉(zhuǎn)換為YCbCr空間中的圖像YCbCr。hsv2rgb函數(shù)——將HSV模型轉(zhuǎn)換為RGB模型。其調(diào)用格式如下:rgbmap=hsv2rgb(hsvmap)將HSV色彩空間的顏色映射表hsvmap轉(zhuǎn)換成RGB空間中的色彩表rgbmap,rgbmap和hsvmap都是m×3的矩陣;RGB=hsv2rgb(HSV)表示將HSV色彩空間的圖像HSV轉(zhuǎn)換為真彩色圖像RGB。ntsc2rgb函數(shù)——將NTSC色彩空間值轉(zhuǎn)換為RGB色彩空間值。其調(diào)用格式如下:rgbmap=ntsc2rgb(yiqmap)將YIQ空間中m×3的顏色映射表yiqmap轉(zhuǎn)換成RGB空間中的色彩表rgbmap;RGB=ntsc2rgb(YIQ)將NTSC色彩空間的圖像YIQ轉(zhuǎn)化為真彩色圖像RGB。ycbc2rgb函數(shù)——YCbCr模型轉(zhuǎn)換為RGB模型。其調(diào)用格式如下:rgbmap=ycbcr2rgb(ycbcrmap)將YCbCr色圖ycbcrmap轉(zhuǎn)換到RGB色圖rgbmap。rgbmap和ycbcrmap都是m×3的數(shù)組。RGB=y(tǒng)cbcr2rgb(YCBCR)將YCbCr圖像YCBCR轉(zhuǎn)換成真彩色圖像RGB。四.撰寫技術(shù)分析報告(略)實驗二圖像變換實驗?zāi)康膶W(xué)習(xí)灰度變換修正圖像的顏色和灰度的方法。學(xué)習(xí)圖像直方圖的生成和修正技術(shù)的原理和實現(xiàn)方法,理解其對于觀察圖像的意義。了解圖像變換的意義和手段,熟練掌握傅里葉變換等圖像正交變換方法,了解二維頻譜的分布特點。實驗要求掌握灰度變換函數(shù)的用法,對圖像進行灰度變換,增強對比度,顯示變換前后的圖像以及它們的灰度直方圖。選擇一幅直方圖不均勻的圖像,對其作直方圖均衡化處理,顯示處理前后的圖像以及它們的灰度直方圖。學(xué)習(xí)傅立葉變換等正交變換技術(shù)。三、實驗內(nèi)容1.灰度調(diào)整函數(shù)imadjust是對灰度圖像進行灰度變換的基本工具。其語法為g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)此函數(shù)將圖像f中的亮度值映象到g中的新值,即將low_in至high_in之間的值映射到low_outhigh_out之間的值。low_in以下與high_in以上的值被剪切掉了。輸入圖像應(yīng)為uint8類、uint16類或double類圖像,輸出圖像與輸入圖像有著相同的類。需要注意的是,不管f屬于哪一個類,函數(shù)imadjust指定的強度值的范圍均為[0,1]。如果f是uint8類圖像,則函數(shù)imadjust將乘以255來確定應(yīng)用中的實際值;如果f是uint16類圖像,則函數(shù)imadjust將乘以65535。為[low_inhigh_in]或[low_outhigh_out]使用空矩陣([])會得到默認值[01]。若high_out小于low_out,則輸出亮度會反轉(zhuǎn)。參數(shù)gamma指定了曲線的形狀,該曲線用來映射f的亮度值,以便生成圖像g。gamma的取值決定了輸入圖像到輸出圖像數(shù)據(jù)的映射方式,gamma<1,增強亮度;gamma>1,增強暗度,只有當gamma=1(缺省情況)時,這種映射才是線性映射。例1灰度調(diào)整舉例I=imread('cameraman.tif');J=imadjust(I,[00.2]),[0.51];imshow(I);figure,imshow(J)這樣的操作將顯著增加圖像的對比度,同時也擴寬了原始圖像上黑色部分的變動范圍,從而使攝影師所穿著的衣服的細節(jié)能夠更容易分辨。2.直方圖均衡化直方圖是圖像亮度分布的概率密度函數(shù),是圖像最基本的統(tǒng)計特征,它反映的是圖像的灰度值的分布情況和圖像的明暗分布規(guī)律,。直方圖操作能有效地用于圖像增強,其固有的信息還可用于在其他圖像處理應(yīng)用中,如圖像壓縮與分割。直方圖在軟件中易于計算,也適用于商用硬件設(shè)備,因此,它們成為了實時圖像處理的一個流行工具。直方圖均衡化的目的是使圖像在整個灰度值動態(tài)變化范圍內(nèi)的分布均勻化,改善圖像的亮度分布狀態(tài),增強圖像的視覺效果。灰度直方圖是圖像預(yù)處理中涉及最廣泛的基本概念之一。直方圖均衡化是通過灰度變換將一幅圖像轉(zhuǎn)換為另一幅具有均衡直方圖,即在每個灰度級上都具有相同的象素點數(shù)的過程。直方圖生成函數(shù)為imhist,其基本語法為h=imhist(f,b)其中,f為輸入圖像,h為其直方圖,b是用于形成直方圖的灰度級個數(shù)。若b未包含在此變量中,則其默認值為256。若處理的一幅uint8類圖像,且b=2,則亮度標度范圍被分成兩個部分:0至127和128至255。所得的直方圖將有兩個值:h(1)等于圖像在區(qū)間[0,127]內(nèi)的像素總數(shù),h(2)等于圖像在區(qū)間[128,255]內(nèi)的像素總數(shù)。直方圖均衡化由工具箱中的函數(shù)histeq實現(xiàn),該函數(shù)的語法為g=histeq(f,nlev)式中,f為輸入圖像,nlev是為輸出圖像指定的灰度級數(shù)。若nlev等于L(輸入圖像中可能的灰度級的總數(shù)),則histeq直接執(zhí)行變換函數(shù)T(rk)。若nlev小于L,則histeq試圖劃分灰度級,以便能夠得到較為平坦的直方圖。histeq中的默認值為nlev=64。直方圖均衡化示例I=imread('tire.tif');%讀入原圖像J=histeq(I);%對原圖像進行直方圖均衡化處理imshow(I);%顯示原圖像title('原圖像');%給原圖像加標題名figure,imshow(J);%對原圖像進行屏幕控制;顯示直方圖均衡化后的圖像title('直方圖均衡化所得圖像');%給直方圖均衡化后的圖像加標題名figure;subplot(121);%對直方圖均衡化后的圖像進行屏幕控制;作一幅子圖作為并排兩幅圖的第1幅圖imhist(I,64);%將原圖像直方圖顯示為64級灰度title('原圖像直方圖');%給原圖像直方圖加標題名subplot(122);%作第2幅子圖imhist(J,64);%將均衡化后圖像的直方圖顯示為64級灰度title(‘均衡變換后的直方圖’);%給均衡化后圖像直方圖加標題名直方圖均衡化修正后,圖像直方圖灰度間隔被拉大了,處理后的圖像直方圖分布更均勻了,圖像在每個灰度級上都有像素點。從處理前后的圖像可以看出,許多在原始圖像中看不清楚的細節(jié)在直方圖均衡化處理后所得到的圖像中都變得十分清晰。從而實現(xiàn)圖像增強,有利于圖像的分析與識別。3.直方圖匹配(規(guī)定化)函數(shù)histeq實現(xiàn)直方圖匹配的形式為:g=histeq(f,hspec)其中,f為輸入圖像,hspec為指定的直方圖(一個由指定值構(gòu)成的行向量),g為輸出圖像,其直方圖近似于指定的直方圖hspec。向量中包含對應(yīng)于等分空間bin的整數(shù)值。histeq的一個特性是在length(hspec)遠小于圖像f中的灰度級數(shù)時,圖像g的直方圖通常會較好地匹配hspec。直方圖規(guī)定化I=imread('tire.tif');hgram=50:2:250;%規(guī)定化函數(shù)J=histeq(I,hgram);imshow(J)title('直方圖規(guī)定化所得圖像')figure,imhist(J,64)title('直方圖規(guī)定化變換后的直方圖')圖像正交變換圖像二維正交變換在數(shù)字圖像處理中扮演著重要的角色,如,在傅里葉變換(FT,FourierTransform)域中,高頻分量往往對應(yīng)圖像的邊緣,利用這一性質(zhì)可以從圖像中抽取特征。又如,傅里葉變換后,圖像能量往往集中在少數(shù)項上,或者說能量主要集中在低頻分量上,于是通過對低頻成分分配較多的比特數(shù),對高頻成分分配較少的比特數(shù),即可實現(xiàn)圖像數(shù)據(jù)壓縮。再者,舍棄變換函數(shù)矩陣中某些幅度小的系數(shù),可縮減計算維數(shù),提高計算速度等等。在實際應(yīng)用中離散傅里葉變換DFT及其逆變換可以通過使用快速傅里葉變換(FFT)算法來實現(xiàn)。一個大小為M×N的圖像數(shù)組f可以通過使用函數(shù)fft2得到,該函數(shù)的簡單語法為:Y=fft2(X)返回二維離散傅里葉變換,結(jié)果Y和X的大小相同。仍為M×N,數(shù)據(jù)排列形式為:數(shù)據(jù)的原點在左上角,而四個四分之一周期交匯于頻率矩形的中心。使用傅里葉變換時,需要對輸入數(shù)據(jù)進行零填充。在這種情況下,調(diào)用格式如下:Y=fft2(X,P,Q)使用該語法,fft2將使用所要求的0的個數(shù)對輸入圖像進行填充,以便結(jié)果函數(shù)的大小為P×Q。傅里葉頻譜可以使用函數(shù)abs來獲得:F=abs(Y)該函數(shù)計算數(shù)組的每一個元素的幅度(實部和虛部平方和的平方根)。函數(shù)fftshift將變換的原點移動到頻率矩形的中心。其語法為:C=fftshift(Y)其中,Y是用fft2計算得到的變換,C是已居中的變換。該函數(shù)變換相當于將輸入圖像乘以(-1)x+y所得到的結(jié)果。但要注意的是,這兩種處理過程不可互換。即fftshift(fft2(f))fft2(fftshift(f))。可以用下面的命令行顯示居中后的頻譜:>>C=fftshift(Y);>>imshow(abs(C2),[])雖然頻譜移中后適于觀看了,但該頻譜中值的動態(tài)范圍(0到204000)與8比特顯示相比要大得多。此時可以使用對數(shù)變換來解決該問題。如:>>F2=log(1+abs(C));>>imshow(F2,[])傅里葉逆變換可以用函數(shù)ifft2實現(xiàn),其基本語法為f=ifft2(F)其中,F(xiàn)是傅里葉變換,f是結(jié)果圖像。例4利用MATLAB軟件實現(xiàn)數(shù)字圖像傅立葉變換的程序:I=imread('原圖像名.bmp');%讀入原圖像文件imshow(I);%顯示原圖像fftI=fft2(I);%二維離散傅立葉變換sfftI=fftshift(fftI);%直流分量移到頻譜中心RR=real(sfftI);%取傅立葉變換的實部II=imag(sfftI);%取傅立葉變換的虛部A=sqrt(RR.^2+II.^2);%計算頻譜幅值A(chǔ)=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%歸一化figure;%設(shè)定窗口imshow(A);%顯示原圖像的頻譜四、實驗步驟1.打開計算機,啟動MATLAB程序;程序組中“work”文件夾中應(yīng)有待處理的圖像文件;2.調(diào)入“直方圖”文件夾中的四幅數(shù)字圖像,并進行直方圖均衡化處理,顯示原圖像的直方圖和經(jīng)過均衡化處理過的圖像直方圖。3.利用MatLab工具箱中的函數(shù)編制FFT頻譜顯示的函數(shù);4.a(chǎn)).調(diào)入、顯示“正交變換”文件夾中的圖像;圖像存儲格式為“.bmp”;b)對這四幅圖像做FFT并利用自編的函數(shù)顯示其頻譜;c)討論不同的圖像內(nèi)容與FFT頻譜之間的對應(yīng)關(guān)系。5.記錄和整理實驗報告。五、實驗儀器1.計算機PentiumⅣ;CPU586以上;32M以上內(nèi)存;WindowsXP操作系統(tǒng);Matlab7軟件;2.MATLAB程序;3.移動式存儲器(U盤等)。4.記錄用的筆、紙。六、實驗報告內(nèi)容1.敘述實驗過程;2.描述實驗中編寫的圖像處理源代碼。3.提交實驗的原始圖像和結(jié)果圖像。4.總結(jié)并分析實驗結(jié)果。七、思考題1.直方圖是什么概念?它反映了圖像的什么信息?

2.直方圖均衡化是什么意思?它的主要用途是什么?3.直方圖規(guī)定化是什么意思?它的主要用途是什么?

4.傅里葉變換有哪些重要的性質(zhì)?5.圖像的二維頻譜在顯示和處理時應(yīng)注意什么?實驗三圖像增強實驗?zāi)康恼莆粘R姷膱D像噪聲種類。學(xué)習(xí)用于圖像增強中的去噪聲等平滑技術(shù)。理解在空間域鄰域平均法和中值濾波的原理、特點、適用對象。學(xué)習(xí)用于突出目標形狀特征、改善視覺效果的圖像銳化技術(shù)的原理和常用方法。實驗要求1.用鄰域平均法對含噪聲圖像進行濾波,比較不同鄰域半徑的處理效果。2.用鄰域平均法和中值濾波兩種方法分別處理疊加椒鹽噪聲和高斯噪聲的圖像,比較其濾波效果。三、實驗原理及內(nèi)容圖像增強是指按特定的需要突出一幅圖像中的有用信息,同時,消弱或去除某些不需要的信息,提高圖像的使用價值的處理方法。常用的圖像增強技術(shù)有灰度修正法、直方圖修正法,圖像平滑處理、圖像銳化處理、幾何校正和彩色處理技術(shù)等空間域處理方法。還有頻域增強、維納濾波和卡爾曼濾波等頻率域處理方法。噪聲及其噪聲的Matlab實現(xiàn)實際獲得的圖像一般都因受到某種干擾而含有噪聲。引起噪聲的原因有敏感元器件的內(nèi)部噪聲、相片底片上感光材料的顆粒、傳輸通道的干擾及量化噪聲等。噪聲產(chǎn)生的原因決定了噪聲的分布特性及它與圖像信號的關(guān)系。根據(jù)噪聲與信號的關(guān)系可以將其分為兩種形式。(1)加性噪聲。當噪聲與圖像信號g(x,y)無關(guān),在這種情況下,含噪聲圖像f(x,y)可表示為f(x,y)=g(x,y)+n(x,y)信道噪聲及掃描圖像時產(chǎn)生的噪聲都屬于加性噪聲。(2)乘性噪聲。當噪聲與圖像信號有關(guān)時,又分為兩種情況,一種是某像素處的噪聲只與該像素的圖像有關(guān),另一種是某像素點處的噪聲與該像素點及其鄰域的圖像信號有關(guān)。例如,用飛點掃描器掃描圖像時產(chǎn)生的噪聲就與圖像信號有關(guān)。如果噪聲和信號成正比,則含噪圖像f(x,y)可以表示為f(x,y)=g(x,y)+n(x,y)g(x,y)=[1+n(x,y)]g(x,y)另外,還可以根據(jù)噪聲服從的分布對其進行分類,這時可以分為高斯噪聲、泊松噪聲和顆粒噪聲等。泊松噪聲一般出現(xiàn)在照度非常小及用高倍電子線路放大器的情況下;椒鹽噪聲可認為是泊松噪聲;其他的情況通常為加性高斯噪聲。顆粒噪聲可以認為是白噪聲過程,在密度域中是高斯分布的加性噪聲,而在強度域中為乘性噪聲。Matlab7.0的圖像處理工具箱提供了模擬噪聲生成函數(shù)imnoise,可以對圖像添加某些典型的噪聲。imnoise函數(shù)格式:J=imnoise(I,type)J=imnoise(I,type,parameter)說明:J=imnoise(I,type)返回對圖像I添加典型噪聲后的有噪圖像J,參數(shù)type和parameter用于確定噪聲的類型和相應(yīng)的參數(shù)。例1對圖像rice.png分別添加高斯噪聲、椒鹽噪聲和乘性噪聲。I=imread('rice.png');J1=imnoise(I,'gaussian',0,0.02);%添加零均值高斯噪聲,噪聲方差0.02J2=imnoise(I,'salt&pepper',0.02);%添加椒鹽噪聲,噪聲方差0.02J3=imnoise(I,'speckle',0.02);%添加乘性噪聲,噪聲方差0.02subplot(2,2,1),imshow(I);title('原圖像')subplot(2,2,2),imshow(J1);title('添加高斯噪聲圖像')subplot(2,2,3),imshow(J2);title('添加椒鹽噪聲圖像')subplot(2,2,4),imshow(J3);title('添加乘性噪聲圖像')2.圖像濾波的Matlab實現(xiàn)Matlab中提供的空間域數(shù)字圖像濾波函數(shù)主要有conv2函數(shù)、filter2函數(shù)和fspecial函數(shù)。(1)conv2函數(shù)功能:計算二維卷積。格式:C=conv2(A,B)C=conv2(Hcol,Hrow,A)C=conv2(,'shape')說明:對于C=conv2(A,B),conv2計算矩陣A和B的卷積,若[Ma,Na]=size(A)、[Mb,Nb]=size(B),則size(C)=[Ma+Mb-1,Na+Nb-1];C=conv2(Hcol,Hrow,A)中,矩陣A分別與Hcol向量在列方向和Hrow向量在行方向上進行卷積;C=conv2(,'shape')用來指定conv2返回二維卷積結(jié)果部分,參數(shù)shape可取值如下:full為缺省值,返回二維卷積的全部結(jié)果;same返回二維卷積結(jié)果中與A大小相同的中間部分;valid返回在卷積過程中,未使用邊緣補0部分進行計算的卷積結(jié)果部分,當size(A)<size(B)時,size(C)=[Ma-Mb+1,Na-Nb+1]。(2)filter2函數(shù)功能:計算二維線性數(shù)字濾波,它與函數(shù)fspecial連用。格式:Y=filter2(B,X)Y=filter2(B,X,'shape')說明:對于Y=filter2(B,X),filter2使用矩陣B中的二維FIR濾波器對數(shù)據(jù)X進行濾波,結(jié)果Y是通過二維互相關(guān)計算出來的,其大小與X一樣;對于Y=filter2(B,X,'shape'),filter2返回的Y是通過二維互相關(guān)計算出來的,其大小由參數(shù)shape確定,其取值如下:full返回二維相關(guān)的全部結(jié)果,size(Y)>size(X);same返回二維互相關(guān)結(jié)果的中間部分,Y與X大小相同;valid返回在二維互相關(guān)過程中,未使用邊緣補0部分進行計算的結(jié)果部分,有size(Y)<size(X)。(3)fspecial函數(shù)功能為產(chǎn)生預(yù)定義濾波器。具體語法為:H=fspecial(type)fspecial函數(shù)產(chǎn)生一個有type指定的二維濾波器HH=fspecial('gaussian',n,sigma)產(chǎn)生高斯低通濾波器H=fspecial('sobel')產(chǎn)生Sobel水平邊緣增強濾波器H=fspecial('prewitt')產(chǎn)生Prewitt水平邊緣增強濾波器H=fspecial('laplacian',alpha)產(chǎn)生二維拉普拉斯運算濾波器H=fspecial('log',n,sigma)產(chǎn)生高斯拉普拉斯(LOG)運算濾波器H=fspecial('average',n)產(chǎn)生均值濾波器H=fspecial('unsharp',alpha)產(chǎn)生模糊對比增強濾波器3.鄰域平均法(均值濾波)以像素為中心,灰度值為f(x,y),窗口像素組成的點集用A表示,集內(nèi)像素數(shù)以L表示。經(jīng)過鄰域平均法濾波后,像素f(x,y)對應(yīng)的輸出為g(x,y):即用窗口像素的平均值g(x,y)取代f(x,y)原來的灰度值。例23×3均值模板的生成Average=[1,1,1;1,1,1;1,1,1];例3鄰域平均法濾波I=imread('eight.tif');J=imnoise(I,'salt&pepper',0.02);%添加椒鹽噪聲subplot(2,2,1),imshow(I);title('原圖像')subplot(2,2,2),imshow(J);title('添加椒鹽噪聲圖像')K1=filter2(fspecial('average',3),J)/255;%應(yīng)用3×3鄰域窗口法subplot(2,2,3),imshow(K1);title('3×3窗的鄰域平均濾波圖像')K2=filter2(fspecial('average',7),J)/255;%應(yīng)用7×7鄰域窗口法subplot(2,2,4),imshow(K2);title('7×7窗的鄰域平均濾波圖像')4.中值濾波中值濾波(Medianfiltering)是基于排序統(tǒng)計理論的一種能有效抑制噪聲的非線性信號處理技術(shù)。1971年,Tukey在進行時間序列分析時提出中值濾波器的概念。其基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值替換。這種濾波器的優(yōu)點是運算簡單而且速度較快,在濾除疊加白噪聲和長尾疊加噪聲方面顯示出了極好的性能。中值濾波器在濾除噪聲(尤其是脈沖噪聲)的同時能很好地保護信號的細節(jié)信息(例如邊緣、銳角等)。另外,中值濾波器很容易自適應(yīng)化,從而可以進一步提高其濾波性能。設(shè)f(x,y)表示數(shù)字圖像像素點的灰度值濾波窗口為A的中值濾波器可以定義為:上面數(shù)字圖像中的值用鄰域的最大值替換的濾波器稱為最大值濾波器,如果替換的值是最小值就稱為最小值濾波器。在Matlab圖像處理工具箱中,medfilt2函數(shù)實現(xiàn)中值濾波器。其調(diào)用格式如下:B=medfilt2(A,[mn])對圖像A執(zhí)行二維中值濾波。每個輸出像素為m×n鄰域的中值。在圖像邊界用0填充圖像,所以邊緣的中值為[mn]/2區(qū)域的中值,可能失真。B=medfilt2(A)為m和n缺省為3的情況。四、實驗步驟1.打開計算機,啟動MATLAB程序;2.調(diào)入“圖像平滑”文件夾中的數(shù)字圖像,對已經(jīng)疊加高斯噪聲的圖像利用鄰域平均法進行濾波,窗口尺寸先用3×3,再取5×5逐漸增大,顯示濾波前后的圖像。3.調(diào)入“圖像平滑”文件夾中的數(shù)字圖像,對已經(jīng)疊加高斯噪聲和椒鹽噪聲的圖像利用鄰域平均法和中值濾波法進行濾波,窗口尺寸均為3×3,顯示原圖像和經(jīng)過濾波后的圖像。(注意邊界像元的處理)4.記錄和整理實驗報告。五、實驗儀器1.計算機PentiumⅣ;CPU586以上;32M以上內(nèi)存;WindowsXP操作系統(tǒng);Matlab7軟件;2.MATLAB程序;3.移動式存儲器(U盤等)。4.記錄用的筆、紙。六、實驗報告內(nèi)容1.敘述實驗過程;2.描述實驗中編寫的圖像處理源代碼。3.提交實驗的原始圖像和結(jié)果圖像。4.總結(jié)并分析實驗結(jié)果。七、思考題1.在對圖像進行鄰域平均法濾波時,鄰域半徑的大小對圖像有什么影響,為什么?2.鄰域平均法更適合于處理高斯噪聲還是椒鹽噪聲?試分析原因。3.中值濾波更適合于處理高斯噪聲還是椒鹽噪聲?試分析原因。4.對疊加有乘性噪聲的圖像,設(shè)計一種處理方法,既能去噪聲又能保持邊緣清晰。實驗四圖像分割實驗?zāi)康恼莆粘S玫倪吘壧崛∷惴?,從圖像中提取感興趣的區(qū)域,實現(xiàn)圖像分割。在圖像中,尋找灰度相同或相似的區(qū)域,區(qū)分圖像中的背景區(qū)域和目標區(qū)域,利用Matlab實現(xiàn)圖像的邊緣檢測,進行圖像分割。實驗要求運用羅伯特梯度算子、Sobel算子、Prewitt算子、LoG算子、Canny算子等檢測圖像邊緣,編程實現(xiàn)并觀看圖像分割的效果。運用邊緣檢測函數(shù)edge對圖像作邊緣檢測,并觀看檢測效果。三、實驗原理及內(nèi)容圖像邊緣是圖像中特性(如像素灰度、紋理等)分布的不連續(xù)處,圖像周圍特性有階躍變化或屋脊狀變化的那些像素的集合。圖像邊緣存在于目標與背景、目標與目標、基元與基元的邊界,標示出目標物體或基元的實際含量,是圖像識別信息最集中的地方。圖像分割處理主要用于檢測出圖像中的輪廓邊緣、細節(jié)以及灰度跳變部分,形成完整的物體邊界,達到將物體從圖像中分離出來或?qū)⒈硎就晃矬w表面的區(qū)域檢測出來的目的。常用的分割方法是邊緣檢測。邊緣檢測是采用多種邊緣算子實現(xiàn)突出圖像邊緣,抑制圖像中非邊緣信息,使圖像輪廓更加清晰。梯度算子法對于圖像f(x,y),它在點f(x,y)處的梯度是一個矢量,定義為梯度的方向在函數(shù)f(x,y)最大變化率的方向上,梯度的幅值為梯度的數(shù)值就是f(x,y)在其最大變化率方向上的單位距離所增加的量。對于圖像而言,微分運算可以用差分運算來近似。簡化成模板可以表示成如下形式:Robert梯度算子當梯度計算完后,可采用以下幾種形式突出圖像的輪廓。梯度直接輸出使各點的灰度g(x,y)等于該點的梯度,即這種方法簡單、直接。但增強的圖像僅顯示灰度變化比較陡的邊緣輪廓,而灰度變換比較平緩的區(qū)域則呈暗色。加閾值的梯度輸出加閾值的梯度輸出表達式為式中,T是一個非負的閾值,適當選取T,既可以使明顯的邊緣得到突出,又不會破壞原來灰度變化比較平緩的背景。給邊緣指定一個特定的灰度級式中LG是根據(jù)需要指定的一個灰度級,它將明顯的邊緣用一個固定的灰度級表現(xiàn),而其他的非邊緣區(qū)域的灰度級仍保持不變。給背景指定一個特定的灰度級該方法將背景用一個固定灰度級LG表現(xiàn),便于研究邊緣灰度的變化。二值圖像輸出在某些場合(如字符識別等),既不關(guān)心非邊緣像素的灰度級差別,又不關(guān)心邊緣像素的灰度級差別,只關(guān)心每個像素是邊緣像素還是非邊緣像素,這時可采用二值化圖像輸出方式,其表達式為此法將背景和邊緣用二值圖像表示,便于研究邊緣所在位置。Sobel算子法Sobel相對于先對圖像進行加權(quán)平均再做差分。對于圖像的3×3窗口,設(shè)則定義Sobel算子為簡化成模板可以表示成如下形式:Sobel模板拉普拉斯運算法拉普拉斯算子定義圖像f(x,y)的梯度為銳化后的圖像g為式中k為擴散效應(yīng)系數(shù)。對系數(shù)k的選擇要合理,太大會使圖像中的輪廓邊緣產(chǎn)生過沖;太小則銳化不明顯。常用laplacian算子模板為,,另外還有一些模板也常用于圖像增強,如Prewitt模板例1Laplacian算子的生成laplacian=[0,-1,0;-1,4,-1;0,-1,0];例2Laplacian算子和模板匹配法示例I=imread('eight.tif');subplot(1,3,1);imshow(I);title('原圖像');H=fspecial('laplacian');%應(yīng)用Laplacian算子濾波銳化圖像laplacianH=filter2(H,I);subplot(1,3,2);imshow(laplacianH);title('laplacian算子銳化圖像');H=fspecial('prewitt');%應(yīng)用prewitt模板濾波銳化圖像prewittH=filter2(H,I);subplot(1,3,3);imshow(prewittH);title('prewitt模板銳化圖像');4.邊緣檢測的函數(shù)edge邊緣檢測的函數(shù)edge的基本語法為[g,t]=edge(f,’method’,parameters)其中,f是輸入圖像,method是邊緣檢測方法,如Sobel、Prewitt、Roberts、LaplacianofaGaussian(LoG)、Canny等,parameters是一個參數(shù)。在輸出中,g是一個邏輯數(shù)組,其值如下決定:在f中檢測到邊緣的位置為1,在其他位置為0。參數(shù)t是可選的;它給出edge使用的閾值,以確定哪個梯度值足夠大到可以稱為邊緣點。如Sobel檢測器調(diào)用語法為[g,t]=edge(f,'sobel',T,dir)Prewitt檢測器調(diào)用語法為[g,t]=edge(f,'prewitt',T,dir)Roberts檢測器調(diào)用語法為[g,t]=edge(f,'roberts',T,dir)其中T為指定的閾值,dir指定檢測邊緣的首選方向。LaplacianofaGaussian(LoG)檢測器調(diào)用語法為[g,t]=edge(f,'prewitt',T,sigma)其中,sigma是標準偏差,其他參數(shù)的解釋如前所示。sigma的默認值是2。Canny檢測器調(diào)用語法為[g,t]=edge(f,'canny',T,sigma)其中T是一個向量,T=[T1,T2],T1<T2。sigma是平滑濾波器的標準偏差。四、實驗步驟1.打開計算機,啟動MATLAB程序;2.調(diào)入“圖像平滑”文件夾中的數(shù)字圖像,對初始圖像、添加高斯和椒鹽噪聲的圖像分別選擇三種邊緣檢測算子進行模板計算,顯示原圖像和經(jīng)過模板處理過的圖像。3.利用Matlab提供的邊緣檢測edge函數(shù),選擇三種邊緣檢測算子,分別對圖像進行邊緣檢測,顯示檢測結(jié)果。4.記錄和整理實驗報告。五、實驗儀器1.計算機PentiumⅣ;CPU586以上;32M以上內(nèi)存;WindowsXP操作系統(tǒng);Matlab7軟件;2.MATLAB程序;3.移動式存儲器(U盤等)。4.記錄用的筆、紙。六、實驗報告內(nèi)容1.敘述實驗過程;2.描述實驗中編寫的圖像處理源代碼。3.提交實驗的原始圖像和結(jié)果圖像。4.總結(jié)并分析實驗結(jié)果。七、思考題1.分析Sobel算子特點,并給予說明。2.分析laplacian算子特點,并解釋它為何能增強圖像的邊緣?3.比較各個邊緣算子對圖像邊緣的檢測效果。4.比較各個邊緣檢測算子對噪聲的敏感性,并提出抗噪聲性能較好的邊緣檢測的方法。實驗五圖像壓縮實驗?zāi)康睦斫庥袚p壓縮和無損壓縮的概念;理解圖像壓縮的主要原則和目的;了解幾種常用的圖像壓縮編碼方式。利用MATLAB程序進行圖像壓縮。實驗原理1.圖像壓縮原理圖像壓縮主要目的是為了節(jié)省存儲空間,增加傳輸速度。圖像壓縮的理想標準是信息丟失最少,壓縮比例最大。不損失圖像質(zhì)量的壓縮稱為無損壓縮,無損壓縮不可能達到很高的壓縮比;損失圖像質(zhì)量的壓縮稱為有損壓縮,高的壓縮比是以犧牲圖像質(zhì)量為代價的。壓縮的實現(xiàn)方法是對圖像重新進行編碼,希望用更少的數(shù)據(jù)表示圖像。信息的冗余量有許多種,如空間冗余,時間冗余,結(jié)構(gòu)冗余,知識冗余,視覺冗余等,數(shù)據(jù)壓縮實質(zhì)上是減少這些冗余量。高效編碼的主要方法是盡可能去除圖像中的冗余成分,從而以最小的碼元包含最大的圖像信息。編碼壓縮方法有許多種,從不同的角度出發(fā)有不同的分類方法,從信息論角度出發(fā)可分為兩大類。(1).冗余度壓縮方法,也稱無損壓縮、信息保持編碼或熵編碼。具體說就是解碼圖像和壓縮編碼前的圖像嚴格相同,沒有失真,從數(shù)學(xué)上講是一種可逆運算。(2)信息量壓縮方法,也稱有損壓縮、失真度編碼或煙壓縮編碼。也就是說解碼圖像和原始圖像是有差別的,允許有一定的失真。應(yīng)用在多媒體中的圖像壓縮編碼方法,從壓縮編碼算法原理上可以分為以下3類:(1)無損壓縮編碼種類哈夫曼(Huffman)編碼,算術(shù)編碼,行程(RLE)編碼,Lempelzev編碼。(2)有損壓縮編碼種類預(yù)測編碼,DPCM,運動補償;頻率域方法:正交變換編碼(如DCT),子帶編碼;空間域方法:統(tǒng)計分塊編碼;模型方法:分形編碼,模型基編碼;基于重要性:濾波,子采樣,比特分配,向量量化;(3)混合編碼。有JBIG,H261,JPEG,MPEG等技術(shù)標準。本實驗主要利用MATLAB程序進行離散余弦變換(DCT)壓縮和行程編碼(RunLengthEncoding,RLE)。離散余弦變換(DCT)圖像壓縮原理離散余弦變換DCT在圖像壓縮中具有廣泛的應(yīng)用,它是JPEG、MPEG等數(shù)據(jù)壓縮標準的重要數(shù)學(xué)基礎(chǔ)。和相同圖像質(zhì)量的其他常用文件格式(如GIF(可交換的圖像文件格式),TIFF(標簽圖像文件格式),PCX(圖形文件格式))相比,JPEG是目前靜態(tài)圖像中壓縮比最高的。JPEG比其他幾種壓縮比要高得多,而圖像質(zhì)量都差不多(JPEG處理的圖像只有真彩圖和灰度圖)。正是由于其高壓縮比,使得JPEG被廣泛地應(yīng)用于多媒體和網(wǎng)絡(luò)程序中。JPEG有幾種模式,其中最常用的是基于DCT變換的順序型模式,又稱為基本系統(tǒng)(Baseline)。用DCT壓縮圖像的過程為:(1)首先將輸入圖像分解為8×8或16×16的塊,然后對每個子塊進行二維DCT變換。(2)將變換后得到的量化的DCT系數(shù)進行編碼和傳送,形成壓縮后的圖像格式。用DCT解壓的過程為:(1)對每個8×8或16×16塊進行二維DCT反變換。(2)將反變換的矩陣的塊合成一個單一的圖像。余弦變換具有把高度相關(guān)數(shù)據(jù)能量集中的趨勢,DCT變換后矩陣的能量集中在矩陣的左上角,右下的大多數(shù)的DCT系數(shù)值非常接近于0。對于通常的圖像來說,舍棄這些接近于0的DCT的系數(shù)值,并不會對重構(gòu)圖像的畫面質(zhì)量帶來顯著的下降。所以,利用DCT變換進行圖像壓縮可以節(jié)約大量的存儲空間。壓縮應(yīng)該在最合理地近似原圖像的情況下使用最少的系數(shù)。使用系數(shù)的多少也決定了壓縮比的大小。在壓縮過程的第2步中,可以合理地舍棄一些系數(shù),從而得到壓縮的目的。在壓縮過程的第2步,還可以采用RLE和Huffman編碼來進一步壓縮。2)行程編碼(RLE)原理:

例如如下這幅的二值圖像,

如果采用行程編碼可以按如下格式保存

其中10和8表示圖像的寬和高。在這個小例子中行程編碼并沒有起到壓縮圖像的作用。這是由于這個圖的尺寸過小,當圖像尺寸較大時行程編碼還是不錯的無損壓縮方法。對于灰度圖像和二值圖像,用行程編碼—般都有很高的壓縮率。行程編碼方法實現(xiàn)起來很容易,對于具有長重復(fù)值的串的壓縮編碼很有效,例如:對于有大面積的陰影或顏色相同的圖像,使用這種方法壓縮效果很好。很多位圖文件格式都采用行程編碼,如TIFF,PCX,GEM,BMP等。3.圖像壓縮編碼的MATLAB程序語句利用DCT變換進行圖像壓縮的MATLAB程序RGB=imread('原圖像名.tif');I=rgb2gray(RGB);J=dct2(I);imshow(log(abs(J)),[]),colormap(jet(64)),colorbarJ(abs(J)<10)=0;K=idct2(J);figure,imshow(I)figure,imshow(K,[0255])2)利用離散余弦變換進行JPEG圖像壓縮I=imread('原圖像名.tif');%讀入原圖像;I=im2double(I);%將原圖像轉(zhuǎn)為雙精度數(shù)據(jù)類型;T=dctmtx(8);%產(chǎn)生二維DCT變換矩陣B=blkproc(I,[88],'P1*x*P2',T,T');%計算二維DCT,矩陣T及其轉(zhuǎn)置T'是DCT函數(shù)P1*x*P2的參數(shù)mask=[1111000011100000110000001000000000000000000000000000000000000000];%二值掩膜,用來壓縮DCT系數(shù),只留下DCT系數(shù)中左上角的10個B2=blkproc(B,[88],'P1.*x',mask);%只保留DCT變換的10個系數(shù)I2=blkproc(B2,[8,8],'P1*x*P2',T',T);%逆DCT,重構(gòu)圖像subplot(1,2,1);imshow(I);title('原圖像');%顯示原圖像subplot(1,2,2);imshow(I2);title('壓縮圖像');%顯示壓縮后的圖像。對比原始圖像和壓縮后的圖像,雖然舍棄了85%的DCT系數(shù),但圖像仍然清晰(當然有一些質(zhì)量損失)3)利用行程編碼(RLE)進行圖像壓縮I=checkerboard(10,2);%調(diào)入原圖像[mn]=size(I);J=[];fori=n:mvalue=I(i,1);num=1;forj=2:nifI(i,j)==valuenum=num+1;elseJ=[Jnumvalue];num=1;value=I(i,j);endendI=[Jnumvalue00];%添加的行判斷位00enddisp('原圖像大?。?)whos('I');disp('壓縮圖像大?。?)whos('J');disp('

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論