4.擴張矩陣

Download Report

Transcript 4.擴張矩陣

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為基準,變動值看variance
mean愈大,亮度愈亮。
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 進行濾波
中 間 pixel 值 與 相 鄰 8 個 pixel 值 相 加 再 平 均 9
21/27
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