Matlab图像处理创新实践-实验2【图像滤波基础(2)】
- Matlab實(shí)驗(yàn)4——GUI程序操作說(shuō)明
目? ?錄
一、實(shí)驗(yàn)?zāi)康?/p>
二、實(shí)驗(yàn)內(nèi)容
三、實(shí)驗(yàn)過(guò)程及結(jié)果
步驟1、2
步驟3
步驟4
步驟5
步驟6、7
四、分析與思考
附錄:代碼匯總
參考:
fspecial函數(shù)用于創(chuàng)建預(yù)定義的濾波算子,其語(yǔ)法格式為:
h = fspecial(type)
h = fspecial(type,parameters,sigma)
參數(shù)type制定算子類(lèi)型,parameters指定相應(yīng)的參數(shù),具體格式為:
type='average',為均值濾波,參數(shù)為n,代表模版尺寸,用向量表示,默認(rèn)值為[3,3]。
type= 'gaussian',為高斯低通濾波器,參數(shù)有兩個(gè),n表示模版尺寸,默認(rèn)值為[3,3],sigma表示濾波器的標(biāo)準(zhǔn)差,單位為像素,默認(rèn)值為 0.5。
type= 'laplacian',為拉普拉斯算子,參數(shù)為alpha,用于控制拉普拉斯算子的形狀,取值范圍為[0,1],默認(rèn)值為0.2。
type= 'log',為拉普拉斯高斯算子,參數(shù)有兩個(gè),n表示模版尺寸,默認(rèn)值為[3,3],sigma為濾波器的標(biāo)準(zhǔn)差,單位為像素,默認(rèn)值為0.5
type= 'prewitt',為prewitt算子,用于邊緣增強(qiáng),無(wú)參數(shù)。
type= 'sobel',為著名的sobel算子,用于邊緣提取,無(wú)參數(shù)。?
一、實(shí)驗(yàn)?zāi)康?/span>
通過(guò)簡(jiǎn)單實(shí)驗(yàn)完成對(duì)一個(gè)圖像多種濾波操作,熟悉并了解圖像處理中空域?yàn)V波的概念,通過(guò)實(shí)際操作掌握濾波器的生成和基本的濾波,以完成基本的圖像處理目的。同時(shí),了解幾種常見(jiàn)濾波器的功能和作用。
二、實(shí)驗(yàn)內(nèi)容
步驟1:用手機(jī)給自己拍一張美照(必須是本人照片);
步驟2:將你的照片放到計(jì)算機(jī)內(nèi);
步驟3:啟動(dòng)Matlab,并通過(guò)imread(); 讀取該照片,然后通過(guò)imshow()進(jìn)行顯示。如果圖片過(guò)大,可以通過(guò)imresize(A,m)進(jìn)行縮小,其中A為圖像,m為尺寸變化系數(shù),比如可設(shè)為0.2,尺寸為原來(lái)的五分之一;
步驟 4:利用rgb2gray()函數(shù)將圖像轉(zhuǎn)換為灰度圖像;
步驟5:利用F = fspecial();生成多個(gè)常見(jiàn)濾波器,分別為:①均值濾波器、②高斯濾波器、③拉普拉斯濾波器、④sobel和⑤prewitt濾波器;非必要參數(shù)均采用默認(rèn)值。(詳細(xì)內(nèi)容參加后面的參考信息)
步驟6:將這些濾波器通過(guò)new_im = filter2(F, im)函數(shù)對(duì)測(cè)試圖像進(jìn)行濾波操作,并觀察不同濾波器的濾波結(jié)果;filter2的輸出結(jié)果的數(shù)據(jù)類(lèi)型為double,需要進(jìn)行類(lèi)型轉(zhuǎn)換才能夠作為圖像數(shù)據(jù)顯示,可采用uint8()對(duì)其進(jìn)行類(lèi)型轉(zhuǎn)換,例如:y = uint8(x)
步驟7:利用subplot()函數(shù)實(shí)現(xiàn)將多個(gè)濾波結(jié)果圖像顯示在同一個(gè)窗口中;
注意:所有的運(yùn)行命令需全部形成腳本文件(.m后綴),文件名為姓名的漢語(yǔ)拼音,如zhangsan.m
三、實(shí)驗(yàn)過(guò)程及結(jié)果
【在這里描述下你的實(shí)驗(yàn)操作過(guò)程和相應(yīng)代碼,以及你得到的最終結(jié)果,需圖文并茂】
步驟1、2
步驟1:用手機(jī)給自己拍一張美照(必須是本人照片);
步驟2:將你的照片放到計(jì)算機(jī)內(nèi);
Matlab內(nèi)置圖片:Peppers.png步驟3
步驟3:啟動(dòng)Matlab,并通過(guò)imread(); 讀取該照片,然后通過(guò)imshow()進(jìn)行顯示。如果圖片過(guò)大,可以通過(guò)imresize(A,m)進(jìn)行縮小,其中A為圖像,m為尺寸變化系數(shù),比如可設(shè)為0.2,尺寸為原來(lái)的五分之一;
步驟4
步驟 4:利用rgb2gray()函數(shù)將圖像轉(zhuǎn)換為灰度圖像;
步驟5
步驟5:利用F = fspecial();生成多個(gè)常見(jiàn)濾波器,分別為:①均值濾波器、②高斯濾波器、③拉普拉斯濾波器、④sobel和⑤prewitt濾波器;非必要參數(shù)均采用默認(rèn)值。(詳細(xì)內(nèi)容參加后面的參考信息)
步驟6、7
步驟6:將這些濾波器通過(guò)new_im = filter2(F, im)函數(shù)對(duì)測(cè)試圖像進(jìn)行濾波操作,并觀察不同濾波器的濾波結(jié)果;filter2的輸出結(jié)果的數(shù)據(jù)類(lèi)型為double,需要進(jìn)行類(lèi)型轉(zhuǎn)換才能夠作為圖像數(shù)據(jù)顯示,可采用uint8()對(duì)其進(jìn)行類(lèi)型轉(zhuǎn)換,例如:y = uint8(x)
步驟7:利用subplot()函數(shù)實(shí)現(xiàn)將多個(gè)濾波結(jié)果圖像顯示在同一個(gè)窗口中。
四、分析與思考
【在此描述下你從該實(shí)驗(yàn)中得出的結(jié)論,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,例如:filter2和imfilter區(qū)別,解釋下各個(gè)濾波器的功能等等,可以查閱資料,該部分占最終成績(jī)的50%】
圖像增強(qiáng)是為了改善圖像的視覺(jué)效果,突出圖像中有用的部分(即感興趣的部分)。圖像去噪目的是將退化圖像原有信息進(jìn)行恢復(fù),使之更貼近實(shí)際。
?????? filter2和imfilter區(qū)別:imfilter 可進(jìn)行多bai維圖像(RGB等)進(jìn)行空間濾波,且可選參數(shù)比較多;filter2 只能對(duì)二維圖像(灰度圖)進(jìn)行空間濾波。兩個(gè)函數(shù)結(jié)果類(lèi)dao型不一樣,只需要在I1=filter2(h,I)后面加上I1=uint8(I1)進(jìn)行類(lèi)型轉(zhuǎn)換,結(jié)果就是一樣的。
Matlab采用fspecial函數(shù)生成濾波模板,并用filter2函數(shù)指定模板對(duì)圖像進(jìn)行濾波。fspecial的常用語(yǔ)法格式為:h = fspecial(type)、h = fspecial(type, parameters)。其中,type用于指定濾波器類(lèi)型;parameters則是與濾波器有關(guān)的具體函數(shù)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖表 1 fspecial函數(shù)的濾波器模板定義
| type | parameters | 說(shuō)明 |
| average | hsize | 矩形均值濾波器。hsize為兩元素向量,用于指定矩形的大小。當(dāng)為正方形區(qū)域時(shí),hsize也可用標(biāo)量表示。 |
| disk | radius | 生成半徑為radius的圓形濾波器。 |
| gaussian | hsize,sigma | 標(biāo)準(zhǔn)偏差為sigma、大小為hsize的高斯低通濾波器。 |
| laplacian | alpha | 系數(shù)為alpha的二維拉普拉斯操作。 |
| log | hsize,sigma | 標(biāo)準(zhǔn)偏差為sigma、大小為hsize的高斯濾波旋轉(zhuǎn)對(duì)稱(chēng)拉普拉斯算子。 |
| motion | len,theta | 按角度theta移動(dòng)len個(gè)像素的運(yùn)動(dòng)濾波器。 |
| prewitt | 無(wú) | 近似計(jì)算梯度算子。 |
| sobel | 無(wú) | 考慮了像素點(diǎn)空間位置的近似計(jì)算梯度算子。 |
附錄:代碼匯總
%--------步驟3-------- x = imread('peppers.png'); % 讀取圖片:將圖像數(shù)據(jù)讀取到Matlab環(huán)境中 peppers.png:Matlab內(nèi)置圖片 imshow(x); % 顯示圖片 % 警告: Image is too big to fit on screen; displaying at 8% % > In imuitools\private\initSize at 71 % In imshow at 282 %--------步驟3-------- smallx = imresize(x, 0.5); % 縮小圖片 figure, imshow(smallx); % figure:生成新的圖片窗口,不覆蓋原窗口% --------步驟4-------- x = imread('peppers.png'); % 讀取圖片:將圖像數(shù)據(jù)讀取到Matlab環(huán)境中 smallx = imresize(x, 0.5); imshow(smallx); gx = rgb2gray(smallx); f1 = fspecial('average', 5); gx1 = filter2(f1, gx); figure, imshow(uint8(gx1));% --------步驟5-------- x = imread('peppers.png'); % 讀取圖片:將圖像數(shù)據(jù)讀取到Matlab環(huán)境中 smallx = imresize(x, 0.5); imshow(smallx); gx = rgb2gray(smallx); f1 = fspecial('average', 5); % 1、均值濾波器 f2 = fspecial('gaussian'); % 2、高斯濾波器 f3 = fspecial('laplacian'); % 3、拉普拉斯濾波器 f4 = fspecial('sobel'); % 4、sobel濾波器 f5 = fspecial('prewitt'); % 5、prewitt濾波器 gx1 = filter2(f1, gx); gx2 = filter2(f2, gx); gx3 = filter2(f3, gx); gx4 = filter2(f4, gx); gx5 = filter2(f5, gx); subplot(2, 3, 1);imshow(smallx);title('縮小至原來(lái)的0.5倍'); subplot(2, 3, 2);imshow(uint8(gx1));title('1、均值濾波器'); subplot(2, 3, 3);imshow(uint8(gx2));title('2、高斯濾波器'); subplot(2, 3, 4);imshow(uint8(gx3));title('3、拉普拉斯濾波器'); subplot(2, 3, 5);imshow(uint8(gx4));title('4、sobel濾波器'); subplot(2, 3, 6);imshow(uint8(gx5));title('5、prewitt濾波器');%--------步驟6、7-------- x = imread('peppers.png'); % 讀取圖片:將圖像數(shù)據(jù)讀取到Matlab環(huán)境中 smallx = imresize(x, 0.05); imshow(smallx); gx = rgb2gray(smallx);f1 = fspecial('average', 5); % 1、均值濾波器 gx1 = filter2(f1, gx); gx1_1 = filter2(f1, gx1);f2 = fspecial('gaussian'); % 2、高斯濾波器 gx2 = filter2(f2, gx); gx2_1 = filter2(f2, gx2);f3 = fspecial('laplacian'); % 3、拉普拉斯濾波器 gx3 = filter2(f3, gx); gx3_1 = filter2(f3, gx3);f4 = fspecial('sobel'); % 4、sobel濾波器 gx4 = filter2(f4, gx); gx4_1 = filter2(f4, gx4);f5 = fspecial('prewitt'); % 5、prewitt濾波器 gx5 = filter2(f5, gx); gx5_1 = filter2(f5, gx5);f6 = fspecial('disk'); % 6、disk濾波器 gx6 = filter2(f6, gx); gx6_1 = filter2(f6, gx6);f7 = fspecial('log'); % 7、log濾波器 gx7 = filter2(f7, gx); gx7_1 = filter2(f7, gx7);f8 = fspecial('motion'); % 8、motion濾波器 gx8 = filter2(f8, gx); gx8_1 = filter2(f8, gx8);subplot(3, 3, 1);imshow(smallx);title('縮小至原來(lái)的0.05倍'); subplot(3, 3, 2);imshow(uint8(gx1_1));title('1、均值濾波器'); subplot(3, 3, 3);imshow(uint8(gx2_1));title('2、高斯濾波器'); subplot(3, 3, 4);imshow(uint8(gx3_1));title('3、拉普拉斯濾波器'); subplot(3, 3, 5);imshow(uint8(gx4_1));title('4、sobel濾波器'); subplot(3, 3, 6);imshow(uint8(gx5_1));title('5、prewitt濾波器'); subplot(3, 3, 7);imshow(uint8(gx6_1));title('6、disk濾波器'); subplot(3, 3, 8);imshow(uint8(gx7_1));title('7、log濾波器'); subplot(3, 3, 9);imshow(uint8(gx8_1));title('8、motion濾波器');🤣多謝觀看、
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Matlab图像处理创新实践-实验2【图像滤波基础(2)】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【CentOS Linux 7】实验1【
- 下一篇: 【2020任燕翔-考研专业院校选择指南】