版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字圖像處理(MATLAB版)實(shí)驗(yàn)指導(dǎo)書 數(shù)字圖像處理(MATLAB版)實(shí)驗(yàn)指導(dǎo)書(2011版)倪浩 編寫電子與計(jì)算機(jī)教學(xué)團(tuán)隊(duì)咸寧學(xué)院電子與信息工程學(xué)院目 錄說 明實(shí)驗(yàn)一 Matlab圖像處理基礎(chǔ)1.圖像的讀寫2.圖像顯示實(shí)驗(yàn)二 圖像運(yùn)算1.圖像點(diǎn)運(yùn)算2.圖像的代數(shù)運(yùn)算3.圖像的幾何運(yùn)算4.*圖像的鄰域操作實(shí)驗(yàn)三 灰度變換增強(qiáng)1.線段上像素灰度分布2.直方圖變換實(shí)驗(yàn)四 空域?yàn)V波增強(qiáng)1.噪聲模擬2.均值濾波和中值濾波3.空域?yàn)V波實(shí)驗(yàn)五 空間變換1.圖像極值的處理方法2.*創(chuàng)建一幅圖像,求其距離矩陣。3.*使用偽彩色顯示標(biāo)記矩陣。4.利用選擇控制點(diǎn)實(shí)現(xiàn)圖像匹配。實(shí)驗(yàn)六 圖像變換與濾波器設(shè)計(jì)1.傅立
2、葉變換2.離散余弦變換(DCT)3.Radon變換4.*Matlab線形濾波器設(shè)計(jì)實(shí)驗(yàn)七 形態(tài)學(xué)操作1.圖像膨脹2.圖像腐蝕3.膨脹與腐蝕的綜合使用4.*高帽與低帽變換實(shí)驗(yàn)八 圖像復(fù)原1.模糊與噪聲2.維納濾波復(fù)原實(shí)驗(yàn)九 圖像分析與理解及圖像壓縮1.圖像分析與理解2.圖像壓縮附 錄1.常用圖像處理函數(shù)說 明一、實(shí)驗(yàn)設(shè)備1. LC-PC計(jì)算機(jī)系統(tǒng);2. MatLab軟件/語言包括圖像處理工具箱(Image Processing Toolbox);3. 實(shí)驗(yàn)所需要的圖片。二、實(shí)驗(yàn)步驟1. 啟動(dòng)MatLab,在MatLab命令窗口中輸入相應(yīng)程序;A) 書寫程序時(shí),首先讀取圖像,一般調(diào)用MatLab自
3、帶的圖像,如cameraman.tif圖像;再調(diào)用相應(yīng)的圖像處理函數(shù),設(shè)置參數(shù);最后輸出處理后的圖像;B) Matlab自帶圖像存儲(chǔ)路徑為:Matlab安裝路徑 toolboximagesimdemos,如果Matlab安裝在C盤根目錄下,則的自帶圖像路徑為:“C:MATLAB7toolboximagesimdemos”;C) *.m文件默認(rèn)保存的文件夾為:Matlab安裝路徑work,如“C:MATLAB7 work”;D) 除Matlab自帶的圖像外,新添加的被處理圖像一般與其*.m文件放在同一文件夾中;2. 瀏覽源程序并理解含義;3. 運(yùn)行,觀察并截圖記錄顯示結(jié)果;A) 運(yùn)行過程中改變相
4、應(yīng)參數(shù),觀察結(jié)果圖像,理解參數(shù)含義;B) 截圖方法:鍵盤上Print Screen鍵可截取整個(gè)屏幕,Alt+Print Screen組合鍵可截取活動(dòng)窗口,粘貼到Windows附件中的畫圖工具中保存即可。另外也可自帶專用截圖軟件截??;4. 結(jié)束運(yùn)行,退出程序,撰寫實(shí)驗(yàn)報(bào)告。三、實(shí)驗(yàn)報(bào)告要求 描述實(shí)驗(yàn)的基本步驟,用數(shù)據(jù)和圖片給出各個(gè)步驟中取得的實(shí)驗(yàn)結(jié)果,并進(jìn)行必要的討論,必須包括原始圖像及其計(jì)算/處理后的圖像。 1. 實(shí)驗(yàn)報(bào)告中必須包含完整的圖像處理過程、代碼和結(jié)果及其分析;2. 處理前后的圖像可以打印出來粘貼到實(shí)驗(yàn)報(bào)告上;3. 圖像應(yīng)有簡(jiǎn)單注釋(程序中用title標(biāo)記或用筆添加注釋),且必須與程
5、序代碼對(duì)應(yīng)。實(shí)驗(yàn)一 Matlab圖像處理基礎(chǔ)一、實(shí)驗(yàn)?zāi)康?. 了解Matlab的基本功能及操作方法2. 練習(xí)圖像讀寫和顯示函數(shù)的使用方法3. 掌握Matlab支持的五類圖像的顯示方法(灰度、索引、黑白、彩色等)4. 熟悉常用的圖像文件格式與格式轉(zhuǎn)換;二、實(shí)驗(yàn)內(nèi)容1. 圖像的讀寫A) 圖像讀RGB = imread('ngc6543a.jpg');B) 圖像寫先從一個(gè).mat 文件中載入一幅圖像,然后利用圖像寫函數(shù)imwrite,創(chuàng)建一個(gè).bmp文件,并將圖像存入其中。load clownwhosimwrite(X,map,'clown.bmp')C) 圖像文件格
6、式轉(zhuǎn)換bitmap = imread('clown.bmp','bmp');imwrite(bitmap,'clown.png','png');D) 圖像綜合操作利用matlab提供的函數(shù)將圖像讀入;編寫程序?qū)崿F(xiàn)對(duì)給定圖像進(jìn)行一定比例的放大和縮小處理,在Mfile編輯器中寫入以下程序,全速執(zhí)行:I=imread('roger.jpg'); %讀入圖像J = imresize(I,10); %放大10倍K = imresize(I,0.1); %縮小10倍L=imrotate(I,-10,'bilinear&
7、#39;,'crop'); %逆時(shí)針旋轉(zhuǎn)10°subplot(2,2,1),imshow(I),title('原圖'); %原圖subplot(2,2,2),imshow(J),title('放大10'); %放大10倍subplot(2,2,3),imshow(K),title('縮小0.1'); %縮小10倍subplot(2,2,4),imshow(L),title('逆時(shí)針旋轉(zhuǎn)10°'); %逆時(shí)針轉(zhuǎn)10°2. 圖像顯示A) 二進(jìn)制圖像的顯示BW1=zeros(20,20);%
8、創(chuàng)建僅包含0/1的雙精度圖像BW1(2:2:18,2:2:18)=1;imshow(BW1,'notruesize');whosBW2=uint8(BW1);figure,imshow(BW2,'notruesize')BW3=BW2=0; %邏輯標(biāo)志置為onfigure,imshow(BW3,'notruesize')whosBW=imread('circles.png');imshow(BW);figure,imshow(BW);figure,imshow(BW,1 0 0;0 0 1);B) 灰度圖像的顯示I=imread(
9、'testpat1.tif');J=filter2(1 2;-1 -2,I);imshow(I)figure,imshow(J,)C) 索引圖像的顯示load clown %裝載一幅圖像imwrite(X,map,'clown.bmp'); %保存為bmp文件imshow(X)imshow(X,map)D) RGB圖像的顯示I=imread('flowers.tif');imshow(I)RGB=imread('ngc6543a.jpg');figure,imshow(RGB)imshow(I(:,:,3)% 顯示第3個(gè)顏色分量E
10、) 多幀圖像的顯示mri=uint8(zeros(128,128,1,27); % 27幀文件mri.tif初始化 for frame=1:27 mri(:,:,:,frame),map=imread('mri.tif',frame); % 讀入每一幀 endimshow(mri(:,:,:,3),map); % 顯示第3幀figure,imshow(mri(:,:,:,6),map); % 顯示第6幀figure,imshow(mri(:,:,:,10),map); % 顯示第10幀figure,imshow(mri(:,:,:,20),map); % 顯示第20幀F(xiàn)) 顯示
11、多幅圖像X1,map1=imread('forest.tif');X2,map2=imread('trees.tif');subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)三、思考題1. 簡(jiǎn)述MatLab軟件的特點(diǎn)。2. MatLab軟件可以支持哪些圖像文件格式?3. 如何顯示多幀圖像的所有幀?如何根據(jù)多幀圖像創(chuàng)建電影片段?4. 圖像顯示時(shí),若不帶參數(shù)notruesi
12、ze,顯示效果如何?5. 如何顯示RGB圖像的某一個(gè)顏色分量?實(shí)驗(yàn)二 圖像運(yùn)算一、實(shí)驗(yàn)?zāi)康?. 熟悉圖像點(diǎn)運(yùn)算和代數(shù)運(yùn)算的實(shí)現(xiàn)方法2. 了解圖像幾何運(yùn)算的簡(jiǎn)單應(yīng)用3. 了解圖像的鄰域操作二、實(shí)驗(yàn)內(nèi)容1. 圖像點(diǎn)運(yùn)算讀入圖像rice.png,通過圖像點(diǎn)運(yùn)算改變對(duì)比度。rice=imread('rice.png');subplot(131),imshow(rice)I=double(rice); %轉(zhuǎn)換為雙精度類型J=I*0.43+60;rice2=uint8(J); %轉(zhuǎn)換為uint8subplot(132),imshow(rice2)J=I*1.5-60;rice3=uint8
13、(J); %轉(zhuǎn)換為uint8subplot(133),imshow(rice3)2. 圖像的代數(shù)運(yùn)算A) 圖像加法運(yùn)算I=imread('rice.png');imshow(I)J=imread('cameraman.tif');figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,'uint16');figure,imshow(K2,)RGB=imread('flowers.tif');RGB2=imadd(RGB,50);imshow(RGB)figure,imsh
14、ow(RGB2)RGB3=imadd(RGB,100);figure,imshow(RGB3)B) 圖像減法運(yùn)算I=imread('rice.png');imshow(I)background = imopen(I,strel('disk',15); %估計(jì)背景圖像figure, imshow(background);I2=imsubtract(I,background); %從原始圖像中減去背景圖像figure, imshow(I2)C) 圖像乘法運(yùn)算I=imread('moon.tif');J=immultiply(I,1.2);K=immu
15、ltiply(I,0.5);imshow(I)figure,imshow(J)figure,imshow(K)D) *圖像除法運(yùn)算3. 圖像的幾何運(yùn)算A) 圖像縮放讀入圖像trees.tif,改變圖像大小,分別將原圖像放大1.5倍和縮小0.5倍。I=imread('trees.tif');J=imresize(I,1.25);K=imresize(I,0.8);imshow(I)figure,imshow(J)figure,imshow(K)Y=imresize(I,100,150);figure,imshow(Y)在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用圖像縮放函數(shù),
16、設(shè)置相關(guān)參數(shù),再輸出處理后的圖像。I = imread('cameraman.tif');figure,imshow(I);scale = 0.5;J = imresize(I,scale);figure,imshow(J);B) 圖像旋轉(zhuǎn)將上述圖像順時(shí)針和逆時(shí)針旋轉(zhuǎn)任意角度,觀察顯示效果。I=imread('trees.tif');J=imrotate(I,30,'bilinear');J1=imrotate(I,30,'bilinear','crop');imshow(I)figure,imshow(J)fig
17、ure,imshow(J1)J2=imrotate(I,-15,'bilinear');figure,imshow(J2)在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用圖像旋轉(zhuǎn)函數(shù),設(shè)置相關(guān)參數(shù),再輸出處理后的圖像。I = imread('cameraman.tif');figure,imshow(I);theta = 30;K = imrotate(I,theta); % Try varying the angle, theta.figure, imshow(K)C) 圖像剪切通過交互式操作,從一幅圖像中剪切一個(gè)矩形區(qū)域。I=imread('tree
18、s.tif');imshow(I);I1=imcrop;figure,imshow(I1)I2=imcrop(I,30 60 120 160);figure,imshow(I2)4. *圖像的鄰域操作讀入圖像tire.tif,分別使用函數(shù)nlfilter和blkproc對(duì)圖像進(jìn)行滑動(dòng)鄰域操作和分離鄰域操作。I=imread('tire.tif');f=inline('max(x(:)'); %構(gòu)造復(fù)合函數(shù)I2=nlfilter(I,3 3,f); %滑動(dòng)鄰域操作imshow(I)figure,imshow(I2)I=imread('tire.ti
19、f');f=inline('uint8(round(mean2(x)*ones(size(x)'); %構(gòu)造復(fù)合函數(shù)I2=blkproc(I,8 8,f); %滑動(dòng)鄰域操作imshow(I)figure,imshow(I2)三、思考題1. 點(diǎn)運(yùn)算和代數(shù)運(yùn)算的實(shí)現(xiàn)方法各是怎樣的?實(shí)驗(yàn)三 灰度變換增強(qiáng)一、實(shí)驗(yàn)?zāi)康?. 熟悉matlab圖像處理工具箱及直方圖函數(shù)的使用;2. 了解灰度變換增強(qiáng)的Matlab實(shí)現(xiàn)方法3. 掌握直方圖灰度變換方法4. 理解和掌握直方圖原理和方法;二、實(shí)驗(yàn)內(nèi)容1. 線段上像素灰度分布讀入灰度圖像debye1.tif,采用交互式操作,用improfil
20、e繪制一條線段的灰度值。imshow('debye1.tif')improfile讀入RGB圖像flowers.tif,顯示所選線段上紅、綠、藍(lán)顏色分量的分布imshow('flowers.tif')improfile2. 直方圖變換A) 直方圖顯示在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用直方圖函數(shù),設(shè)置相關(guān)參數(shù),再輸出處理后的圖像。I=imread('cameraman.tif'); %讀取圖像subplot(1,2,1),imshow(I) %輸出圖像title('原始圖像') %在原始圖像中加標(biāo)題subplot(1,
21、2,2),imhist(I) %輸出原圖直方圖title('原始圖像直方圖') %在原圖直方圖上加標(biāo)題讀入圖像rice.png,在一個(gè)窗口中顯示灰度級(jí)n=64,128和256的圖像直方圖。I=imread('rice.png');imshow(I)figure,imhist(I,64)figure,imhist(I,128)B) 直方圖灰度調(diào)節(jié)利用函數(shù)imadjust調(diào)解圖像灰度范圍,觀察變換后的圖像及其直方圖的變化。I=imread('rice.png');imshow(I)figure,imhist(I)J=imadjust(I,0.15 0
22、.9,0 1);figure,imhist(J)figure,imshow(J)I=imread('cameraman.tif');imshow(I)figure,imhist(I)J=imadjust(I,0 0.2,0.5 1);figure,imhist(J)figure,imshow(J)C) 直方圖均衡化在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用灰度均衡函數(shù),設(shè)置相關(guān)參數(shù),再輸出處理后的圖像。I=imread('cameraman.tif'); %讀取圖像subplot(2,2,1),imshow(I) %輸出圖像title('原始圖像&
23、#39;) %在原始圖像中加標(biāo)題subplot(2,2,3),imhist(I) %輸出原圖直方圖title('原始圖像直方圖') %在原圖直方圖上加標(biāo)題a=histeq(I,256); %直方圖均衡化,灰度級(jí)為256subplot(2,2,2),imshow(a) %輸出均衡化后圖像title('均衡化后圖像') %在均衡化后圖像中加標(biāo)題subplot(2,2,4),imhist(a) %輸出均衡化后直方圖title('均衡化后圖像直方圖') %在均衡化后直方圖上加標(biāo)題分別對(duì)圖像pout.tif和tire.tif進(jìn)行直方圖均衡化處理,比較處理前
24、后圖像及直方圖分布的變化。I=imread('pout.tif');imshow(I)figure,imhist(I)J=histeq(I);figure,imhist(J)figure,imshow(J)I=imread('tire.tif');imshow(I)figure,imhist(I)J=histeq(I);figure,imshow(J)figure,imhist(J)三、思考題1. MATLAB程序的IPT中有哪些圖像亮(灰)度變換函數(shù)?寫出函數(shù)的語法。2. 直方圖的物理含義是什么?3. 結(jié)合實(shí)驗(yàn)內(nèi)容,定性評(píng)價(jià)直方圖均衡增強(qiáng)效果?實(shí)驗(yàn)四 空域?yàn)V波
25、增強(qiáng)一、實(shí)驗(yàn)?zāi)康?. 了解空域?yàn)V波增強(qiáng)的Matlab實(shí)現(xiàn)方法;2. 掌握噪聲模擬和圖像濾波函數(shù)的使用方法;3. 能夠?qū)⒔o定圖像+噪聲,使用均值濾波器、中值濾波器對(duì)不同強(qiáng)度的高斯噪聲和椒鹽噪聲,進(jìn)行濾波處理;4. 能夠正確地評(píng)價(jià)處理的結(jié)果;并從理論上作出合理的解釋。二、實(shí)驗(yàn)內(nèi)容1. 噪聲模擬利用函數(shù)imnoise給圖像eight.tif分別添加高斯(gaussian)噪聲和椒鹽(salt & pepper)噪聲。I=imread('eight.tif');imshow(I)I1=imnoise(I,'gaussian',0,0.01);figure,ims
26、how(I1)I2=imnoise(I,'salt & pepper');figure,imshow(I2)2. 均值濾波和中值濾波A) 均值濾波在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用圖像增強(qiáng)()函數(shù),設(shè)置相關(guān)參數(shù),再輸出處理后的圖像。I = imread('cameraman.tif');figure,imshow(I);J=filter2(fspecial(average,3),I)/255;figure,imshow(J);B) 中值濾波在matlab環(huán)境中,程序首先讀取圖像,然后調(diào)用圖像增強(qiáng)(中值濾波)函數(shù),設(shè)置相關(guān)參數(shù),再輸出處理后的
27、圖像。I = imread('cameraman.tif');figure,imshow(I);J=medfilt2(I,5,5);figure,imshow(J);3. 空域?yàn)V波A) 對(duì)上述噪聲圖像進(jìn)行均值濾波和中值濾波,比較濾波效果。I=imread('Sample2-1.jpg'); J = imnoise(I,'gauss',0.02); %添加高斯噪聲 %J = imnoise(I,'salt & pepper',0.02); %添加椒鹽噪聲K = filter2(fspecial('average
28、9;,3),J)/255; %均值濾波 3 ×3L = filter2(fspecial('average',5),J)/255; %均值濾波 5 ×5M = medfilt2(J,3 3); %中值濾波3 ×3 模板N = medfilt2(J,4 4); % 中值濾波4 ×4 模板imshow(I);figure,imshow(J);figure,imshow(K);figure,imshow(L); figure,imshow(M); figure,imshow(N);B) 總結(jié)均值濾波和中值濾波的特點(diǎn)及使用場(chǎng)合。均值濾波器是一種最
29、常用的線性低通平滑濾波器。可抑制圖像中的噪聲,但同時(shí)也使圖像變得模糊中值濾波器是一種最常用的非線性平滑濾波器??上龍D像中孤立的噪聲點(diǎn),又可產(chǎn)生較少的模糊C) *對(duì)圖像'saturn.tif'采用'laplacian'高通濾波器進(jìn)行銳化濾波。I=imread('saturn.tif');imshow(I)h=fspecial('laplacian'); I2=filter2(h,I);figure,imshow(I2)三、思考題1. 簡(jiǎn)述高斯噪聲和椒鹽噪聲的特點(diǎn)。2. 結(jié)合實(shí)驗(yàn)內(nèi)容,定性評(píng)價(jià)平均濾波器/中值濾波器對(duì)高斯噪聲和椒鹽噪
30、聲的去噪效果?3. 結(jié)合實(shí)驗(yàn)內(nèi)容,定性評(píng)價(jià)濾波窗口對(duì)去噪效果的影響?4. 圖像亮(灰)度變換與空間濾波有什么不同?實(shí)驗(yàn)五 空間變換一、實(shí)驗(yàn)?zāi)康?. 了解空間變換函數(shù)及圖像匹配方法二、實(shí)驗(yàn)內(nèi)容1. 圖像極值的處理方法A) 對(duì)于下圖所示的圖像矩陣A,利用函數(shù)imregionalmax尋找其局部極大值A(chǔ)=10 10 10 10 10 10 10 10 10 10; 10 13 13 13 10 10 11 10 11 10; 10 13 13 13 10 10 10 11 10 10; 10 13 13 13 10 10 11 10 11 10; 10 10 10 10 10 10 10 10 10
31、 10; 10 11 10 10 10 18 18 18 10 10; 10 10 10 11 10 18 18 18 10 10; 10 10 11 10 10 18 18 18 10 10; 10 11 10 11 10 10 10 10 10 10; 10 10 10 10 10 10 11 10 10 10;B=imregionalmax(A)B) 利用函數(shù)imextendedmax尋找像素值大于其鄰域像素值2個(gè)單位的局部極大值。C=imextendedmax(A,2)2. *創(chuàng)建一幅圖像,求其距離矩陣。bw=zeros(5,5);bw(2,2)=1;bw(4,4)=1;D=bwdis
32、t(bw)center1=-10;center2=-center1;dist=sqrt(2*(2*center1)2);radius=dist/2*1.4;lims=floor(center1-1.2*radius) ceil(center2+1.2*radius);x,y=meshgrid(lims(1):lims(2);bw1=sqrt(x-center1).2+(y-center2).2)<=radius;bw2=sqrt(x-center2).2+(y-center2).2)<=radius;bw1=sqrt(x-center1).2+(y-center1).2)<=
33、radius;bw=bw1|bw2;imshow(bw)D=bwdist(bw);figure,imshow(D, )D1=bwdist(bw);figure,imshow(D1, )3. *使用偽彩色顯示標(biāo)記矩陣。BW=0 0 0 0 0 0 0 0; 0 1 1 0 0 1 1 1; 0 1 1 0 0 0 1 1; 0 1 1 0 0 0 0 0; 0 0 0 1 1 0 0 0; 0 0 0 1 1 0 0 0; 0 0 0 1 1 0 0 0; 0 0 0 0 0 0 0 0X=bwlabel(BW,4)RGB=label2rgb(X,jet,'k');imshow(
34、RGB,'notruesize')4. 利用選擇控制點(diǎn)實(shí)現(xiàn)圖像匹配。Matlab圖像匹配的步驟:將標(biāo)準(zhǔn)圖像和待匹配圖像讀入Matlab;指定圖像中的控制點(diǎn)對(duì)并保存;使用互相關(guān)性進(jìn)一步協(xié)調(diào)控制點(diǎn)對(duì)(可選);制定所需變換類型并根據(jù)控制點(diǎn)對(duì)推斷變換參數(shù);變換未匹配的圖像。%讀入待匹配圖像和標(biāo)準(zhǔn)圖像unregistered = imread('westconcordaerial.png');imshow(unregistered)orthophoto = imread('westconcordorthophoto.png');figure,imshow(
35、orthophoto)%選擇圖像中對(duì)應(yīng)的控制點(diǎn)cpselect(unregistered(:,:,1),orthophoto)%保存控制點(diǎn)對(duì)input_pointsbase_points%使用相關(guān)性進(jìn)一步協(xié)調(diào)控制點(diǎn)對(duì)input_points_corr=cpcorr(input_points,base_points,unregistered(:,:,1),orthophoto);input_points_corr %根據(jù)控制點(diǎn)對(duì)推斷空間變換參數(shù)mytform=cp2tform(input_points,base_points,'projective');%變換未匹配的圖像regi
36、stered=imtransform(unregistered,mytform);figure,imshow(registered)實(shí)驗(yàn)六 圖像變換與濾波器設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?. 了解傅立葉變換、離散余弦變換及Radon變換在圖像處理中的應(yīng)用2. 了解Matlab線性濾波器的設(shè)計(jì)方法二、實(shí)驗(yàn)內(nèi)容1. 傅立葉變換A) 傅里葉變換基本操作I = imread('at3_1m4_04.tif');imshow(I);title('源圖像');J = fft2(I);figure, imshow(J);title('傅立葉變換'); %頻移JSh = ff
37、tshift(J);figure, imshow(JSh);title('傅立葉變換頻移');%直接傅立葉反變換Ji = ifft2(J);figure, imshow(Ji/256);title('直接傅立葉變換');%幅度JA = abs(J);iJA = ifft2(JA);figure, imshow(iJA/256);title('幅度傅立葉反變換');%相位JP = angle(J);iJP = ifft2(JP);figure, imshow(abs(iJP)*100);title('相位傅立葉反變換'); B) 利
38、用MATLAB軟件實(shí)現(xiàn)數(shù)字圖像傅立葉變換的程序I=imread(原圖像名.gif); %讀入原圖像文件imshow(I); %顯示原圖像fftI=fft2(I); %二維離散傅立葉變換sfftI=fftshift(fftI); %直流分量移到頻譜中心RR=real(sfftI); %取傅立葉變換的實(shí)部II=imag(sfftI); %取傅立葉變換的虛部A=sqrt(RR.2+II.2);%計(jì)算頻譜幅值A(chǔ)=(A-min(min(A))/(max(max(A)-min(min(A)*225; %歸一化figure; %設(shè)定窗口imshow(A); %顯示原圖像的頻譜C) 繪制一個(gè)二值圖像矩陣,并將
39、其傅立葉函數(shù)可視化。f=zeros(30,30);f(5:24,13:17)=1;imshow(f,'notruesize')F=fft2(f);F2=log(abs(F);figure,imshow(F2,-1 5,'notruesize');colormap(jet); F=fft2(f,256,256); %零填充為256×256矩陣figure,imshow(log(abs(F),-1 5,'notruesize');colormap(jet); F2=fftshift(F); %將圖像頻譜中心由矩陣原點(diǎn)移至矩陣中心figure
40、,imshow(log(abs(F2),-1 5,'notruesize');colormap(jet);D) 利用傅立葉變換分析兩幅圖像的相關(guān)性,定位圖像特征。讀入圖像text.tif,抽取其中的字母a。bw=imread('text.tif');a=bw(59:71,81:91);imshow(bw);figure,imshow(a);C=real(ifft2(fft2(bw).*fft2(rot90(a,2),256,256);%求相關(guān)性figure,imshow(C,);thresh=max(C(:);figure,imshow(C>thresh-
41、10)figure,imshow(C>thresh-15)2. 離散余弦變換(DCT)A) 使用dct2對(duì)圖像autumn.tif進(jìn)行DCT變換。RGB=imread('autumn.tif');imshow(RGB)I=rgb2gray(RGB); %轉(zhuǎn)換為灰度圖像figure,imshow(I)J=dct2(I);figure,imshow(log(abs(J),),colormap(jet(64);colorbar;B) 將上述DCT變換結(jié)果中絕對(duì)值小于10的系數(shù)舍棄,使用idct2重構(gòu)圖像并與原圖像比較。RGB=imread('autumn.tif'
42、;);I=rgb2gray(RGB); %轉(zhuǎn)換為灰度圖像J=dct2(I);figure,imshow(I)K=idct2(J);figure,imshow(K,0 255)J(abs(J)<10)=0; %舍棄系數(shù)K2=idct2(J);figure,imshow(K2,0 255)C) 利用DCT變換進(jìn)行圖像壓縮。I=imread('cameraman.tif');I=im2double(I);T=dctmtx(8);B=blkproc(I,8,8,'P1*x*P2',T,T');mask=1 1 1 1 0 0 0 0 1 1 1 0 0 0
43、 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;B2=blkproc(B,8 8,'P1.*x',mask);I2=blkproc(B2,8 8,'P1*x*P2',T',T);imshow(I)figure,imshow(I2)3. Radon變換使用Radon逆變換重建圖像。P=phantom(256); %創(chuàng)建256灰度級(jí)大腦圖imshow(P)theta1=0:10:170;R1,xp=rado
44、n(P,theta1); %18個(gè)投影theta2=0:5:175; R2,xp=radon(P,theta2); %36個(gè)投影theta3=0:2:178; R3,xp=radon(P,theta3); %90個(gè)投影figure,imagesc(theta3,xp,R3);colormap(hot);colorbar% 使用逆變換重構(gòu)圖像I1=iradon(R1,10); %用R1重構(gòu)圖像I2=iradon(R2,5); %用R2重構(gòu)圖像I3=iradon(R3,2); %用R3重構(gòu)圖像figure,imshow(I1)figure,imshow(I2)figure,imshow(I3)4.
45、 *Matlab線形濾波器設(shè)計(jì)采用頻率變換方式,通過一維最優(yōu)波紋FIR濾波器創(chuàng)建二維FIR濾波器(p96)。b=remez(10,0 0.4 0.6 1,1 1 0 0);%階次,頻率向量,對(duì)應(yīng)的理想幅頻響應(yīng)h=ftrans2(b);H,w=freqz(b,1,64,'whole');colormap(jet(64)plot(w/pi-1,fftshift(abs(H);%使x軸取值0處對(duì)應(yīng)曲線中心figure,freqz2(h,32 32)三、思考題1. 傅里葉變換有哪些重要的性質(zhì)?2. 簡(jiǎn)述傅立葉頻譜搬移的原理3. 簡(jiǎn)述Fourier系數(shù)幅度、相位的物理意義。4. 圖像的二
46、維頻譜在顯示和處理時(shí)應(yīng)注意什么?5. 簡(jiǎn)述離散余弦變換(DCT)的原理。實(shí)驗(yàn)七 形態(tài)學(xué)操作一、實(shí)驗(yàn)?zāi)康?. 了解膨脹和腐蝕的Matlab實(shí)現(xiàn)方法2. 掌握?qǐng)D像膨脹、腐蝕、開啟、閉合等形態(tài)學(xué)操作函數(shù)的使用方法3. 了解二進(jìn)制圖像的形態(tài)學(xué)應(yīng)用二、實(shí)驗(yàn)內(nèi)容1. 圖像膨脹A) 對(duì)包含矩形對(duì)象的二進(jìn)制圖像進(jìn)行膨脹操作。BW=zeros(9,10);BW(4:6,4:7)=1;imshow(BW,'notruesize')se=strel('square',3); %正方形結(jié)構(gòu)元素BW2=imdilate(BW,se);figure,imshow(BW2,'notr
47、uesize')B) 改變上述結(jié)構(gòu)元素類型(如:line, diamond, disk等),重新進(jìn)行膨脹操作。C) 對(duì)圖像text.tif進(jìn)行上述操作,觀察不同結(jié)構(gòu)元素膨脹的效果。BW3=imread('text.tif');imshow(BW3)se2=strel('line',11,90); %線型結(jié)構(gòu)元素BW4=imdilate(BW3,se2);figure,imshow(BW4)2. 圖像腐蝕A) 對(duì)圖像circbw.tif進(jìn)行腐蝕操作。BW1=imread('circbw.tif');se=strel('arbitra
48、ry',eye(5);BW2=imerode(BW1,se);imshow(BW1)figure,imshow(BW2)B) 對(duì)圖像text.tif進(jìn)行腐蝕操作。BW=imread('text.tif');se=strel('line',11,90);BW2=imerode(BW,se);imshow(BW)figure,imshow(BW2)3. 膨脹與腐蝕的綜合使用A) 從原始圖像circbw.tif中刪除電流線,僅保留芯片對(duì)象。方法一:先腐蝕(imerode),再膨脹(imdilate);BW1=imread('circbw.tif'
49、;);imshow(BW1)se=strel('rectangle',40 30); %選擇適當(dāng)大小的矩形結(jié)構(gòu)元素BW2=imerode(BW1,se); %先腐蝕,刪除較細(xì)的直線figure,imshow(BW2)BW3=imdilate(BW2,se); %再膨脹,恢復(fù)矩形的大小figure,imshow(BW3)方法二:使用形態(tài)開啟函數(shù)(imopen)。BW1=imread('circbw.tif');imshow(BW1)se=strel('rectangle',40 30); BW2=imopen(BW1,se); %開啟操作figur
50、e,imshow(BW2)B) 改變結(jié)構(gòu)元素的大小,重新進(jìn)行開啟操作,觀察處理結(jié)果。se=strel(rectangle,20 10); se=strel(rectangle,50 40);C) 置結(jié)構(gòu)元素大小為4 3,同時(shí)觀察形態(tài)開啟(imopen)與閉合(imclose)的效果,總結(jié)形態(tài)開啟與閉合在圖像處理中的作用。I=imread('circbw.tif');imshow(I)se=strel('rectangle',4 3); I1=imopen(I,se); %開啟操作I2=imclose(I,se); %閉合操作figure,imshow(I1)fi
51、gure,imshow(I2)D) 綜合實(shí)例I=imread('Plane2.jpg');level = graythresh(I); %得到合適的閾值bw = im2bw(I,level); %二值化SE = strel('square',3); %設(shè)置膨脹結(jié)構(gòu)元素BW1 = imdilate(bw,SE); %膨脹SE1 = strel('arbitrary',eye(5); %設(shè)置腐蝕結(jié)構(gòu)元素BW2 = imerode(bw,SE1); %腐蝕BW3 = bwmorph(bw, 'open'); %開運(yùn)算BW4 = bwmo
52、rph(bw, 'close'); %閉運(yùn)算imshow(I);figure,imshow(bw);figure,imshow(BW1);figure,imshow(BW2);figure,imshow(BW3);figure,imshow(BW4); 4. *高帽與低帽變換A) 讀入圖像pearlite.tif,分別顯示其高帽變換與低帽變換結(jié)果,并與原圖像比較。(設(shè)se=strel('disk',5);)。I=imread('pearlite.tif');subplot(221),imshow(I)se=strel('disk'
53、,5);J=imtophat(I,se);subplot(222),imshow(J)K=imbothat(I,se);subplot(223),imshow(K)L=imsubtract(imadd(J,I),K);subplot(224),imshow(L)B) 要求顯示在一個(gè)窗口中。三、思考題1. 結(jié)合實(shí)驗(yàn)內(nèi)容,評(píng)價(jià)腐蝕運(yùn)算與膨脹運(yùn)算的效果。2. 結(jié)合實(shí)驗(yàn)內(nèi)容,評(píng)價(jià)開運(yùn)算與閉運(yùn)算的效果。3. 腐蝕、膨脹、開、閉運(yùn)算的適用條件是什么?實(shí)驗(yàn)八 圖像復(fù)原一、實(shí)驗(yàn)?zāi)康?. 掌握噪聲模擬和圖像濾波函數(shù)的使用方法2. 了解圖像復(fù)原的Matlab實(shí)現(xiàn)方法二、實(shí)驗(yàn)內(nèi)容1. 模糊與噪聲A) 對(duì)圖像flow
54、ers.tif分別采用運(yùn)動(dòng)PSF和均值濾波PSF進(jìn)行模糊。I=imread('flowers.tif');I=I(10+1:256,222+1:256,:); %剪切圖像imshow(I)len=30; %運(yùn)動(dòng)位移 theta=10; %運(yùn)動(dòng)角度PSF=fspecial('motion',len,theta);blurred=imfilter(I,PSP,'circular','conv');figure,imshow(blurred)I=imread('flowers.tif');imshow(I) H=fspecial('motion',50,45); %運(yùn)動(dòng)PSPmotionblur=imfilter(I,H);figure,imshow(motionblur)H=fspecial(disk,10); %均值濾波PSPaverageblur=imfilter(I,H);figure,imshow(averageblur)B) 在上述模糊圖像上再添加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年家禽訂購(gòu)合同
- 房屋改建合同范例
- 2024電子教學(xué)設(shè)備采購(gòu)合同
- 2024上海出租合同范本
- 工行委托貸款合同
- 2024紅磚購(gòu)銷合同(墻地磚類)范本
- 2024【內(nèi)外粉刷合同協(xié)議書】?jī)?nèi)墻粉刷合同范本
- 短期臨時(shí)工作合同協(xié)議
- 2024保險(xiǎn)代理協(xié)議書
- 廣東省東莞市七年級(jí)上學(xué)期語文期中考試試卷3套【附答案】
- 模板支架及腳手架安全使用培訓(xùn)課件
- 企業(yè)財(cái)產(chǎn)保險(xiǎn)投保單
- CT報(bào)告單模板精編版
- 柿子品種介紹PPT課件
- 內(nèi)鏡清潔消毒登記表格模板
- 天然氣脫硫(課堂運(yùn)用)
- 幼兒園教師師德師風(fēng)考核表(共2頁)
- 城鎮(zhèn)職工醫(yī)療保險(xiǎn)運(yùn)行中的問題分析及措施
- 阿拉丁神燈介紹ppt[共27頁]
- 學(xué)校食堂五常法管理制度
- 畢業(yè)設(shè)計(jì)500kv變電站設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論