Experiment

Post on 03-Sep-2014

30 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Mean filter and Median filter

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

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

2/27

讀入圖檔

讀入的圖檔3/27

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

4/27

圖片灰階化

灰階化後的圖檔5/27

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

pixel 值 figure; imshow(img);

對應 pixel 顯示的圖像6/27

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

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

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

8/27

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

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

9/27

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

10/27

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

3. 影像加雜訊

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

12/27

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

3. 影像加雜訊

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

14/27

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

15/27

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

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

16/27

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

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

,,

;

;

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

19/27

5. 使用 Mean filter 進行濾波

依序對每個像素做平均

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

20/27

5. 使用 Mean filter 進行濾波

21/27

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

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

22/27

5. 使用 Mean filter 進行濾波

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

23/27

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

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

25/27

5. 使用 Median filter 進行濾波

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

26/27

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

27/27

top related