線性濾波
圖像濾波與濾波器
圖像濾波饰豺,指的是在盡量保留圖像特征的條件下對(duì)目標(biāo)圖像得噪聲進(jìn)行抑制连茧,是圖像處理當(dāng)中不可缺少的部分腹侣。
平滑錄播室低頻增強(qiáng)的空間域?yàn)V波技術(shù)乏德,它的目的有兩類(lèi):一類(lèi)是模糊撤奸,一類(lèi)是消除噪音。常見(jiàn)的濾波有:
- 方框?yàn)V波 -- BoxBlur 函數(shù)
- 均值濾波 -- Blur 函數(shù)
- 高斯濾波 -- Gaussianblur 函數(shù)
- 中值濾波 -- mediaBlur 函數(shù)
- 雙邊濾波 -- bilateralFilter 函數(shù)
線性濾波簡(jiǎn)介
線性濾波經(jīng)常用于剔除輸入信號(hào)中不想要的頻率或者從許多頻率中選擇一個(gè)想要的頻率喊括。
- 低通濾波器 允許低頻通過(guò)
- 高通濾波器 允許高頻通過(guò)
- 帶通濾波器 允許一定范圍的頻率通過(guò)
- 帶阻濾波器 允許一定范圍的頻率通過(guò)并阻止其他的頻率通過(guò)
- 全通濾波器 允許所有頻率通過(guò)胧瓜,只改變相位
- 陷波濾波器 阻止一個(gè)狹窄頻率范圍通過(guò)
濾波和模糊
- 高斯濾波是指用高斯函數(shù)作為濾波函數(shù)的濾波操作;
- 高斯模糊就是高斯低通濾波郑什。
鄰域算子與線性鄰域?yàn)V波
鄰域算子是利用給定像素周?chē)南袼刂禌Q定此像素的最終輸出值的一種算子府喳。線性濾波就是一種常見(jiàn)的鄰域算子。
線性濾波處理的輸出像素值g(i , j) 是輸入像素值f(i + k,j + I)的加權(quán)和蹦误,如下:
其中的h(k,l),我們稱(chēng)其為"核"劫拢,時(shí)濾波器的加權(quán)系數(shù),即濾波器的"濾波系數(shù)",f
表示輸入像素值,h
表示加權(quán)系數(shù)"核",g
表示輸出像素值强胰,整體可以簡(jiǎn)單寫(xiě)作:
常見(jiàn)的線性濾波操作
- 方框?yàn)V波 -- boxblur函數(shù)
- 均值濾波 -- blur函數(shù)
- 高斯濾波 -- GaussianBlur函數(shù)
方框?yàn)V波
void boxFilter(
InputArray src,
OutPutArray dst,
int ddepth, //輸出圖像的深度舱沧,-1表示原圖深度
Size ksize, //內(nèi)核的大小
Point anchor = Point(-1,-1), //表示錨點(diǎn),即平滑的那個(gè)點(diǎn)
boolnormalize = true, //一個(gè)標(biāo)識(shí)符偶洋,表示內(nèi)核是否被其區(qū)域歸一化
int borderType = BORDER_DEFAULT //用于推斷圖像外部像素的某種邊界模式
)
當(dāng)normalize=true的時(shí)候熟吏,方框?yàn)V波就變成了我們熟悉的均值濾波,均值濾波就是方框?yàn)V波歸一化后的特殊情況
</div>
效果
內(nèi)核大小(5,5) | 內(nèi)核大小(7,7) |
---|---|
均值濾波
均值濾波也稱(chēng)為線性濾波玄窝,其采用的主要方法為鄰域平均法牵寺。線性濾波的基本原理是用均值代替原圖像中的各個(gè)像素值,即對(duì)待處理的當(dāng)前像素點(diǎn)(x恩脂,y)帽氓,選擇一個(gè)模板,該模板由其近鄰的若干像素組成俩块,求模板中所有像素的均值黎休,再把該均值賦予當(dāng)前像素點(diǎn)(x浓领,y),作為處理后圖像在該點(diǎn)上的灰度g(x势腮,y)联贩,即g(x,y)=1/m ∑f(x捎拯,y) m為該模板中包含當(dāng)前像素在內(nèi)的像素總個(gè)數(shù)泪幌。
void blur(
InputArray src,
OutPutArray dst,
Size ksize, //內(nèi)核的大小
Point anchor = Point(-1,-1), //表示錨點(diǎn),即平滑的那個(gè)點(diǎn)
int borderType = BORDER_DEFAULT //用于推斷圖像外部像素的某種邊界模式
)
高斯濾波
從數(shù)學(xué)的角度上來(lái)看署照,圖像的高斯模糊過(guò)程就是圖像與正態(tài)分布作卷積祸泪。
void GaussianBlur(
InputArray src,
OutPutArray dst,
Size ksize, //高斯內(nèi)核的大小
double sigmax, //表示高斯函數(shù)在X方向的標(biāo)準(zhǔn)偏差
double sigmay = 0, //表示高斯函數(shù)在Y方向的標(biāo)準(zhǔn)偏差
int borderType = BORDER_DEFAULT //用于推斷圖像外部像素的某種邊界模式
)
一維高斯函數(shù)
二維高斯函數(shù)
效果
高斯內(nèi)核大小(5,5) | 高斯內(nèi)核大小(9,9) |
---|---|