Top Banner
Mean filter and Median filter 教教 教教教 教教 教教教教教教教教教
27

Experiment

Sep 03, 2014

Download

Documents

nenenzhuang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Experiment

Mean filter and Median filter

教授:王榮華學生:軟性計算實驗室成員

Page 2: Experiment

讀入圖檔 clear all; % 從記憶體中清除變數和函數 clc; % 清除指令視窗 close all; % 關閉其他視窗 img=imread(‘l.jpg'); % 讀入圖檔存進變數 img figure; % 開啟新視窗 imshow(img); % 根據變數灰階值顯示圖像

2/27

Page 3: Experiment

讀入圖檔

讀入的圖檔3/27

Page 4: Experiment

圖片灰階化 clear all; % 從記憶體中清除變數和函數 clc; % 清除指令視窗 close all; % 關閉其他視窗 img=imread('l.jpg'); % 讀入圖檔存進變數 img img_gray=rgb2gray(img); % 將彩色圖片轉成灰階 figure; % 開啟新視窗 imshow(img_gray); % 根據變數灰階值顯示圖像

4/27

Page 5: Experiment

圖片灰階化

灰階化後的圖檔5/27

Page 6: Experiment

影像陣列 img=[255,0,255,0;0,255,0,255]; % 陣列存入

pixel 值 figure; imshow(img);

對應 pixel 顯示的圖像6/27

Page 7: Experiment

影像陣列 img=[255,0,255,0;0,255,0,255];

對應的陣列位置與 pixel 值7/27

Page 8: Experiment

程式步驟 1. 讀入圖檔 2. 灰階化 3. 加雜訊 4. 擴張矩陣 5. 進行濾波

8/27

Page 9: Experiment

1. 讀入圖檔 與 2. 灰階化 clear all; clc; close all; img=imread(‘lenna.bmp’); % 讀入圖檔存進變

數 img img_gray=rgb2gray(img); % 將彩色圖片轉成灰階 figure; % 打開或創建圖形視窗 imshow(img_gray); % 顯示圖檔

9/27

Page 10: Experiment

程式步驟 1. 讀入圖檔 2. 灰階化 3. 影像加雜訊 4. 擴張矩陣 5. 進行濾波

10/27

Page 11: Experiment

3. 影像加雜訊 img_ga=imnoise(img_gray,'gaussian'); % 加高斯雜訊 img_ga=imnoise(img_gray,'gaussian‘ ,0,0.01); mean=0, variance=0.01

img_sp=imnoise(img_gray,‘salt & pepper’); % 加胡椒鹽雜訊 預設為 0.05 img_sp=imnoise(img_gray,'salt & pepper',0.2);

0.2=20%

11/27

Page 12: Experiment

3. 影像加雜訊

常態分佈的期望值μ 決定了其位置,其標準差σ 決定了分佈的幅度。

12/27

Page 13: Experiment

3. 影像加雜訊 img_ga=imnoise(img_gray,'gaussian‘ ,0.1,0);

pixel=31 mean=0.1(10%), variance=0 new_pixel=31+256*0.1 =31+26 =57 57 為基準,變動值看 variancemean 愈大,亮度愈亮。variance 愈大, pixel 值隨機變動的範圍就愈大。

13/27

Page 14: Experiment

3. 影像加雜訊

原圖 胡椒鹽雜訊 加高斯雜訊

14/27

Page 15: Experiment

程式步驟 1. 讀入圖檔 2. 灰階化 3. 加雜訊 4. 擴張矩陣 5. 進行濾波

15/27

Page 16: Experiment

4. 擴張矩陣 由於靠近邊緣的 pixel 周遭是空的,進行計算時就以擴充的方式取代, 達到鏡射的效果。

5*5 的影像,虛線處為擴充的部份

16/27

Page 17: Experiment

4. 擴張矩陣 M1=[img_ga(1:end,1), img_ga, img_ga

(1:end,end)]; % 擴張行 逗號 , 擴張矩陣的左邊與右邊。 M1=[M1(1,1:end);M1;M1(end,1:end)]; % 擴張列 分號 ; 擴張矩陣的上邊與下邊。

17/27

Page 18: Experiment

4. 擴張矩陣

M1 = img_ga (1:end,1) + img_ga + img_ga (1:end,end)

M1 = M1(1,1:end) + M1 + M1(end,1:end)

18/27

,,

;

;

Page 19: Experiment

程式步驟 1. 讀入圖檔 2. 灰階化 3. 加雜訊 4. 擴張矩陣 5. 進行濾波

19/27

Page 20: Experiment

5. 使用 Mean filter 進行濾波

依序對每個像素做平均

平均濾波器以濾波器範圍內的所有像素灰階值之平均取代濾波器中間位置影像的像素。

20/27

Page 21: Experiment

5. 使用 Mean filter 進行濾波

21/27

中 間 pixel 值 與 相 鄰 8 個 pixel 值 相 加 再 平 均 9

Page 22: Experiment

5. 使用 Mean filter 進行濾波 ave=fspecial(‘average’,[3,3]); % 設定 3*3 平均濾波器 M2=filter2(ave,M1); % 對影像 M1 執行 3*3 平均濾波 實驗 : 改變平均濾波器的遮罩大小, 然後觀察 其結果。

22/27

Page 23: Experiment

5. 使用 Mean filter 進行濾波

原圖 加高斯雜訊 濾波後結果

23/27

Page 24: Experiment

5. 使用 Median filter 進行濾波

依序對每個像素做中間值替代

中值 ( 中位數 ) 濾波器以濾波器範圍內的所有像素灰階值做排序,以中間值取代濾波器中間位置影像的像素。 A=[122,6,1,7,15,2,77,1,2] A_sort=[1,1,2,2,6,7,15,77,122]

24/27

Page 25: Experiment

5. 使用 Median filter 進行濾波 M2=medfilt2(M1,[3,3]); % 對影像 M1 執行 3*3 中值 ( 中位數 ) 濾波 實驗 : 將胡椒鹽雜訊 + 0.2 , 然後修改遮罩大小。 實驗 : 比較平均與中值濾波器在處理胡椒鹽雜 訊的結果差異。

25/27

Page 26: Experiment

5. 使用 Median filter 進行濾波

原圖 加胡椒鹽雜訊 濾波後結果

26/27

Page 27: Experiment

加分題 加學期總分 5 分,試寫出 :(1) 3*3 Mean filter with MATLAB(2) 5*5 Median filter with MATLAB

27/27