边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取
第一部分 圖像的傅立葉變換
一、 實驗目的
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
種不同的閾值分別檢測強邊緣和弱邊緣, 并且僅當弱邊緣與強邊緣相連時才將弱邊緣包含在輸出圖像中,
因此這種方法較其它方法而言不容易被噪聲“填充”,更容易檢查出真正的弱邊緣。通過實驗結果可以看出,該算子在上述幾種邊緣檢測算子當中效果最好。
總結
以上是生活随笔為你收集整理的边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 常见密码设置_设置mysql
- 下一篇: matlab 控制声卡,请问高手关于ma