Matlab 均值滤波与中值滤波
%%以下是本人在學習中的個人理解,如有錯誤請指出
所謂的濾波就是一個系數(shù)矩陣(也稱為模板,濾波器,濾波模板,核,掩模或者窗口),然后用這個模板對應圖像矩陣(填充0后的圖像矩陣)進行乘積和運算。
均值濾波就是這個濾波器每個值都是一樣大小,每個值是1/k(k為濾波器矩陣的大小),用于去噪
濾波器可通過 w=fspecial(‘type’,parameters)得到,其中type指定濾波器類型,parameters進一步定一規(guī)定的濾波器
用fspecial(‘a(chǎn)verage’)可以創(chuàng)建一個均值濾波器,默認33,每個值都是1/(33)=0.1111
然后創(chuàng)建個簡單矩陣
>> x=[1,2,3;4,5,6;2,2,2]x =1 2 34 5 62 2 2使用filter2(h,x)進行濾波,h為濾波器,x為要濾波的數(shù)據(jù),將h放在x上移動進行模板濾波。
y=filter2(h,x)y =1.3333 2.3333 1.77781.7778 3.0000 2.22221.4444 2.3333 1.6667下面分析過程
填充0后的圖像矩陣x:
然后進行乘積和運算
x中
0 0 0
0 1 2
0 4 5
分別和h對應的各元素做乘積然后求和:即(1+2+4+5)*0.1111=1.3333
所得結果即為濾波后圖像y的y(1,1)(對應著x(1,1)),以此類推。
(1+2+4+5)*0.1111=(1+2+4+5+6)/9=1.3333
其原理其實就等于用該點的像素值得領域矩陣的均值來代替這點的像素值
即對以該點為中心點的領域矩陣求和 / 領域矩陣大小
下面是均值濾波實現(xiàn)代碼:
中值濾波法是一種非線性平滑技術,它將每一像素點的灰度值設置為該點某鄰域窗口內的所有像素點灰度值的中值,對去椒鹽噪聲十分有效。
工具箱提供的函數(shù)是
g=medfilt2(f,[m,n],padopt)
[m,n]定義一個大小為mn的領域(在該領域上計算中值),padopt指定三個可能的邊界填充選項之一(zeros默認值,symmetric,indexed)
默認形式為
g=medfilt2(f)
使用一個33的領域并用0填充邊界來計算中值
下面看例子
%%%文章為作者手打,記錄和分享自己的學習,如有錯誤請指出,轉載請注明出處
總結
以上是生活随笔為你收集整理的Matlab 均值滤波与中值滤波的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02怎么学数据结构?
- 下一篇: AlexNet、VGG16、ResNet