Matlab图像处理创新实践-实验1【图像滤波基础(1)】
- Matlab實驗4——GUI程序操作說明
目? ?錄
一、實驗目的
二、實驗內容
三、實驗過程及結果
步驟1、2、3
步驟4
步驟5、6
步驟7
步驟8
四、分析與思考
附錄:代碼匯總
一、實驗目的
通過簡單實驗完成對一個圖像去除噪聲的操作,來熟悉并了解圖像處理中空域濾波的概念,通過實際操作掌握濾波器的生成和基本的濾波操作,以完成基本的圖像處理目的。
二、實驗內容
步驟1:用手機給自己拍一張美照(必須是本人照片);
步驟2:將你的照片放到計算機內;
步驟3:啟動Matlab,并通過imread(); 讀取該照片,然后通過imshow()進行顯示;如果圖片過大,可以通過imresize(A,m)進行縮小,其中A為圖像,m為尺寸變化系數,比如可設為0.2,尺寸為原來的五分之一;
步驟4:執行noise_im = imnoise(im, 'gaussian');函數,對你剛剛讀取到的照片添加一定量的噪聲,其中,im代表你剛剛讀取到的圖像;
步驟5:利用F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器,其中,Size和Sigma的數值自己確定;
步驟6:通過new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作,并觀察效果;
步驟7:反復調整第五步中的Size和Sigma兩個參數,并反復進行濾波操作,最終將你最滿意的結果保存,并顯示,同時記錄下得到最滿意結果時的兩個參數值;
步驟8:可嘗試迭代操作,即 im = imfilter(im, F); im = imfilter(im, F);……即前一次濾波的結果又作為第二次濾波的輸入參數。這樣迭代多次,觀察效果,并選擇出迭代次數以及和Size,Sigma兩個參數的最佳搭配值。
三、實驗過程及結果
【在這里描述下你的實驗操作過程和相應代碼,以及你得到的最終結果,需圖文并茂。】
尊龍步驟1、2、3
步驟1:用手機給自己拍一張美照(必須是本人照片);
步驟2:將你的照片放到計算機內;
步驟3:啟動Matlab,并通過imread(); 讀取該照片,然后通過imshow()進行顯示;如果圖片過大,可以通過imresize(A,m)進行縮小,其中A為圖像,m為尺寸變化系數,比如可設為0.2,尺寸為原來的五分之一;
步驟4
步驟4:執行noise_im = imnoise(im, 'gaussian');函數,對你剛剛讀取到的照片添加一定量的噪聲,其中,im代表你剛剛讀取到的圖像;
步驟5、6
步驟5:利用F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器,其中,Size和Sigma的數值自己確定;
步驟6:通過new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作,并觀察效果;
步驟7
步驟7:反復調整第五步中的Size和Sigma兩個參數,并反復進行濾波操作,最終將你最滿意的結果保存,并顯示,同時記錄下得到最滿意結果時的兩個參數值;
步驟8
步驟8:可嘗試迭代操作,即 im = imfilter(im, F); im = imfilter(im, F);……即前一次濾波的結果又作為第二次濾波的輸入參數。這樣迭代多次,觀察效果,并選擇出迭代次數以及和Size,Sigma兩個參數的最佳搭配值。
四、分析與思考
【在此描述下你從該實驗中得出的結論,并對實驗結果進行分析,解釋下為什么高斯濾波器可以去除噪聲,可以查閱資料?!?/p>
此次試驗,學習了如何使用Matlab對圖像進行處理(展示圖像、放大圖像、縮小圖像、噪聲處理等)。還學習了高斯濾波器,高斯濾波器是一種線性濾波器,能夠有效的抑制噪聲,平滑圖像,其作用原理和均值濾波器類似,都是取濾波器窗口內的像素的均值作為輸出。
附錄:代碼匯總(ex1.m)
%--------步驟3-------- x = imread('E:/zunlong.jpg'); % 讀取圖片:將圖像數據讀取到Matlab環境中 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); % 顯示圖片% --------步驟4-------- x = imread('E:/zunlong.jpg'); % 讀取圖片:將圖像數據讀取到Matlab環境中 smallx = imresize(x, 0.5); %在保持圖像形狀的基礎上對圖像的大小進行改變noise_x = imnoise(smallx, 'gaussian'); % 噪聲處理 對剛剛讀取到的照片添加一定量的噪聲,其中,im代表剛剛讀取到的圖像; figure, imshow(noise_x); % figure: 生成新的圖片窗口,不覆蓋原窗口% --------步驟5-------- F = fspecial('gaussian', 5, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器%--------步驟6-------- x = imread('E:/zunlong.jpg'); % 讀取圖片:將圖像數據讀取到Matlab環境中 smallx = imresize(x, 0.5); %在保持圖像形狀的基礎上對圖像的大小進行改變 noise_x = imnoise(smallx, 'gaussian'); % 噪聲處理 對剛剛讀取到的照片添加一定量的噪聲,其中,im代表剛剛讀取到的圖像;F = fspecial('gaussian', 5, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im1 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 imshow(new_im1); % figure, F = fspecial('gaussian', 50, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im2 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 imshow(new_im2); % figure, F = fspecial('gaussian', 50, 30); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im3 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 imshow(new_im3); % figure, subplot(2,2,1);imshow(x);title('原圖'); subplot(2,2,2);imshow(smallx);title('縮小至原來的0.05倍'); subplot(2,2,3);imshow(imnoise(x, 'gaussian'));title('加噪'); subplot(2,2,4);imshow(imfilter(noise_x, fspecial('gaussian', 5, 1)));title('濾波處理');% --------步驟7-------- x = imread('E:/zunlong.jpg'); % 讀取圖片:將圖像數據讀取到Matlab環境中 smallx = imresize(x, 0.05); %在保持圖像形狀的基礎上對圖像的大小進行改變 noise_x = imnoise(smallx, 'gaussian'); % 噪聲處理 對剛剛讀取到的照片添加一定量的噪聲,其中,im代表剛剛讀取到的圖像;F = fspecial('gaussian', 5, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im1 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 subplot(2,2,1), imshow(new_im1),title('原始圖像');F = fspecial('gaussian', 50, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im2 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 subplot(2,2,2), imshow(new_im2),title('Size、Sigma:50、1');F = fspecial('gaussian', 50, 5); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im3 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 subplot(2,2,3), imshow(new_im3),title('Size、Sigma:50、5');F = fspecial('gaussian', 100, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器 new_im4 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 subplot(2,2,4), imshow(new_im4),title('Size、Sigma:100、1');%--------步驟8-------- x = imread('E:/zunlong.jpg'); % 讀取圖片:將圖像數據讀取到Matlab環境中 smallx = imresize(x, 0.5); %在保持圖像形狀的基礎上對圖像的大小進行改變 noise_x = imnoise(smallx, 'gaussian'); % 噪聲處理 對剛剛讀取到的照片添加一定量的噪聲,其中,im代表剛剛讀取到的圖像;F = fspecial('gaussian', 50, 1); % F = fspecial('gaussian', Size, Sigma);生成一個高斯濾波器new_im5 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 figure, imshow(new_im5);new_im6 = imfilter(new_im5, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 figure, imshow(new_im6);new_im7 = imfilter(new_im6, F); % new_im = imfilter(noise_im, F)函數對添加了噪聲的圖像進行濾波操作 figure, imshow(new_im7);🤣多謝觀看、
總結
以上是生活随笔為你收集整理的Matlab图像处理创新实践-实验1【图像滤波基础(1)】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zzuliOJ 2536: 绿绿学姐与A
- 下一篇: 【UI设计】【Photoshop系统设计