第一部分 圖像的傅立葉變換
一、 實驗目的
1.了解圖像變換的意義和手段;
2. 熟悉傅裡葉變換的基本性質;
3. 熟練掌握FFT的方法及應用;
4. 通過實驗了解二維頻譜的分布特點;
5. 通過本實驗掌握利用MATLAB程式設計實作數字圖像的傅立葉變換。
二、 實驗原理
1.應用傅立葉變換進行圖像處理
傅裡葉變換是線性系統分析的一個有力工具,它能夠定量地分析諸如數字化系統、采樣點、電子放大器、卷積濾波器、噪音和顯示點等的作用。通過實驗培養這項技能,将有助于解決大多數圖像處理問題。對任何想在工作中有效應用數字圖像處理技術的人來說,把時間用在學習和掌握博裡葉變換上是很有必要的。
2.傅立葉(Fourier)變換的定義
對于二維信号,二維Fourier變換定義為:
二維離散傅立葉變換為:
三、 實驗步驟
1.打開計算機,安裝和啟動MATLAB程式;程式組中“work”檔案夾中應有待處理的圖像檔案;
2.利用MatLab工具箱中的函數編制FFT頻譜顯示的函數;
3. a)調入、顯示三張不同的圖像;
b)對這三幅圖像做FFT并利用自編的函數顯示其頻譜;
c)讨論不同的圖像内容與FFT頻譜之間的對應關系。
4.記錄和整理實驗報告。
四、 實驗儀器
1計算機, MATLAB軟體;
3移動式存儲器(軟碟、U盤等)。
4記錄用的筆、紙。
五、 實驗結果及程式
1.程式
I1=imread('F:MATLAB學習實驗pictureLENA.TIF'); %讀入原圖像檔案
I2=imread('F:MATLAB學習實驗picturecell.tif'); %讀入原圖像檔案
I3=imread('cameraman.tif'); %讀入原圖像檔案
subplot(3,2,1);imshow(I1); %顯示原圖像
fftI1=fft2(I1); %二維離散傅立葉變換
sfftI1=fftshift(fftI1); %直流分量移到頻譜中心
RR1=real(sfftI1); %取傅立葉變換的實部
II1=imag(sfftI1); %取傅立葉變換的虛部
A1=sqrt(RR1.^2+II1.^2); %計算頻譜幅值
A1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*225;%歸一化
subplot(3,2,2);imshow(A1); %顯示原圖像的頻譜
subplot(3,2,3);imshow(I2); %顯示原圖像
fftI2=fft2(I2); %二維離散傅立葉變換
sfftI2=fftshift(fftI2); %直流分量移到頻譜中心
RR2=real(sfftI2); %取傅立葉變換的實部
II2=imag(sfftI2); %取傅立葉變換的虛部
A2=sqrt(RR2.^2+II2.^2); %計算頻譜幅值
A2=(A2-min(min(A2)))/(max(max(A2))-min(min(A2)))*225;%歸一化
subplot(3,2,4);imshow(A2); %顯示原圖像的頻譜
subplot(3,2,5);imshow(I3); %顯示原圖像
fftI3=fft2(I3); %二維離散傅立葉變換
sfftI3=fftshift(fftI3); %直流分量移到頻譜中心
RR3=real(sfftI3); %取傅立葉變換的實部
II3=imag(sfftI3); %取傅立葉變換的虛部
A3=sqrt(RR3.^2+II3.^2); %計算頻譜幅值
A3=(A3-min(min(A3)))/(max(max(A3))-min(min(A3)))*225;%歸一化
subplot(3,2,6);imshow(A3); %顯示原圖像的頻譜
2.結果
六、 思考題
1.傅裡葉變換有哪些重要的性質?
線性、時頻對偶性、展縮性、時移性、時域和頻域的微分性等。
第二部分 圖像邊緣提取
一。 實驗目的:
掌握圖像邊緣提取的常用算子的特點和程式實作。
二。實驗原理:
邊緣就是圖像中包含的對象的邊界所對應的位置。物體的邊緣以圖像局部特性的不連續性的形式出現的,例如,灰階值的突變,顔色的突變,紋理結構的突變等。從本質上說,邊緣就意味着一個區域的終結和另外一個區域的開始。圖像邊緣資訊在圖像分析和人的視覺中十分重要,是圖像識别中提取圖像特征的一個重要屬性。
邊緣檢測(edge
detection)在圖像處理和對象識别領域中都是一個重要的基本問題。由于邊緣的灰階不連續性,可以使用求導數的方法檢測到。最早的邊緣檢測方法都是基于像素的數值導數的運算。現在使用的邊緣檢測算法大緻可以歸納為兩類:梯度(gradient)算子和拉普拉斯(Laplacian)算子。
三。實驗内容:
編制一個通用的邊緣提取函數。通過輸入不同的參數,能夠實作Sobel算子、Prewitt算子、Roberts算子、Laplace算子和Canny邊緣檢測,并比較不同算子處理後的邊緣圖像的特點。(實驗圖像任選)
MATLAB圖像處理工具箱提供的edge函數可以實作檢測邊緣的功能,詳細的使用文法可以在MATLAB指令視窗鍵入”help
edge.m”獲得幫助。該函數隻能應用于灰階圖像,其基本原理就是識别圖像中灰階值變化較大的像素點。
四。 實驗步驟:
a、 讀入圖像
b、對圖像依次進行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny算子運算,比較處理結果。
五。 實驗儀器
1計算機;
2 MATLAB軟體;
3移動式存儲器(軟碟、U盤等)。
4記錄用的筆、紙。
六、 實驗結果及程式
1.程式
I=imread('cameraman.tif');
subplot(2,3,1);
imshow(I);title('(a)原始圖像');
subplot(2,3,2);
I1=edge(I,'sobel'); %Sobel算子邊緣檢測
imshow(I1);title('(b)Sobel算子');
subplot(2,3,3);
I2=edge(I,'prewitt'); %Prewitt算子邊緣檢測
imshow(I2);title('(c)Prewitt算子');
subplot(2,3,4);
I3=edge(I,'robert'); %Robert算子邊緣檢測
imshow(I3);title('(d)Robert算子');
subplot(2,3,5);
I4=edge(I,'log'); %Laplace算子邊緣檢測
imshow(I4);title('(e)Laplace算子');
subplot(2,3,6);
I5=edge(I,'canny'); �nny算子邊緣檢測
imshow(I5);title('(f)Canny算子');
2.實驗結果
3.實驗結果分析
由于Robert s
算子是利用圖像的兩個對角線的相鄰像素之差進行梯度幅值的檢測,是以求得的是在差分點處梯度幅值的近似值,并且檢測水準和垂直方向邊緣的性能好于斜線方向的邊緣,
檢測精度比較高, 但容易丢失一部分邊緣, 同時由于沒經過圖像平滑計算,是以不能抑制噪聲,該算子對具有陡峭的低噪聲圖像響應最好。
Prewit t 算子和Sobel 算子都是對圖像進行差分和濾波運算,僅在平滑部分的權值選擇上有些差異,
是以兩者均對噪聲具有一定的抑制能力, 但這種抗噪能力是通過像素平均來實作的, 是以圖像産生了一定的模糊, 而且還會檢測出一些僞邊緣,
是以檢測精度比較低, 該類算子比較适用于圖像邊緣灰階值比較尖銳,且圖像噪聲比較小的情況。
Laplace算子首先通過高斯函數對圖像進行平滑處理, 是以對噪聲的抑制作用比較明顯, 但同時也可能将原有的邊緣也平滑了,
造成某些邊緣無法檢測到,。此外高斯分布因子σ的選擇對圖像邊緣檢測效果有較大的影響。σ越大, 檢測到的圖像細節越豐富, 但抗噪能力下降,
進而出現僞邊緣, 反之則抗噪能力提高, 但邊緣檢測精度下降, 易丢失許多真邊緣, 是以, 對于不同圖像應選擇不同參數。
Canny 算子也采用高斯函數對圖像進行平滑處理, 是以具有較強的去噪能力, 但同樣存在容易平滑掉一些邊緣資訊,
其後所采用的一階微分算子的方向性較Laplace算子要好,是以邊緣定位精度較高。該算子與其它邊緣檢測算子的不同之處在于, 它使用2
種不同的門檻值分别檢測強邊緣和弱邊緣, 并且僅當弱邊緣與強邊緣相連時才将弱邊緣包含在輸出圖像中,
是以這種方法較其它方法而言不容易被噪聲“填充”,更容易檢查出真正的弱邊緣。通過實驗結果可以看出,該算子在上述幾種邊緣檢測算子當中效果最好。