深入剖析高斯濾波

深入剖析高斯濾波

ID:10804764

大小:44.50 KB

頁數(shù):4頁

時(shí)間:2018-07-08

深入剖析高斯濾波_第1頁
深入剖析高斯濾波_第2頁
深入剖析高斯濾波_第3頁
深入剖析高斯濾波_第4頁
資源描述:

《深入剖析高斯濾波》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、高斯濾波(高斯平滑)是數(shù)字圖像處理和計(jì)算機(jī)視覺里面最常見的操作。平時(shí),我們都是用Matlab或者OpenCV的函數(shù)調(diào)用:imfilter或者cvSmooth,并不關(guān)心底層的實(shí)現(xiàn)。然而當(dāng)開發(fā)者要自己實(shí)現(xiàn)高斯濾波的時(shí)候,往往就會(huì)很迷惘,經(jīng)常會(huì)被下面幾個(gè)問題所困擾:1、給定sigma,即標(biāo)準(zhǔn)偏差,怎么確定離散化后的濾波器窗口大?。?、給定窗口大小,怎么計(jì)算高斯核的sigma,即標(biāo)準(zhǔn)偏差?3、怎么實(shí)現(xiàn)可分離濾波器?在網(wǎng)上搜了一下,還真沒幾個(gè)人把實(shí)現(xiàn)的細(xì)節(jié)講清楚了。這里,我嘗試結(jié)合三份源碼,做個(gè)小小的總結(jié)。三份源碼分別是:

2、1、OpenCV中的cvfilter.cpp2、autopano-sift-c中的GaussianConvolution.c3、GIMP中的blur-gauss.c和unsharp-mask.c在圖像處理中,高斯濾波一般有兩種實(shí)現(xiàn)方式,一種是用離散化的滑動(dòng)窗口進(jìn)行卷積運(yùn)算,另一種則是通過傅里葉變換來實(shí)現(xiàn)。最常見的就是第一種卷積核實(shí)現(xiàn),只有當(dāng)離散化的窗口非常大,計(jì)算非常耗時(shí)(這時(shí)可使用可分離濾波器)的情況下,可能會(huì)考慮基于傅里葉變換的實(shí)現(xiàn)方法。這里我們只討論第一種方法。二維高斯函數(shù)的形式是這樣的:有著如下的形狀:基

3、本上,離散化的主旨就是保留高斯函數(shù)中心能量最集中的中間部分,忽略四周能量很小的平坦區(qū)域。這只是個(gè)很感性的描述,具體實(shí)現(xiàn)起來,就會(huì)出現(xiàn)千奇百怪的版本。下面結(jié)合三份源碼,看看現(xiàn)實(shí)世界里的高斯平滑到底長(zhǎng)的什么樣子。首先是第一個(gè)問題:給定sigma,怎么計(jì)算窗口大小?直接上OpenCV的源碼,在cvFilter函數(shù)中:param1=cvRound(sigma1*(depth==CV_8U?3:4)*2+1)

4、1;OpenCV認(rèn)為半徑為3*sigma的窗口就是高斯函數(shù)的能量最集中的區(qū)域。(在圖像位深度不是8的時(shí)候,使用4*

5、sigma半徑的窗口?)autopan0-sift-c是圖像拼接軟件hugin里面的sift實(shí)現(xiàn),在實(shí)現(xiàn)DoG的時(shí)候需要做不同尺度的高斯平滑,在GaussianConvolution_new1函數(shù)中實(shí)現(xiàn)如下:dim=1+2*((int)(3.0*sigma));可見autopano也是實(shí)現(xiàn)的3*sigma半徑的窗口。在GIMP里,實(shí)現(xiàn)比較奇特,在blur_gauss.c的make_rle_curve函數(shù)里面,constgdoublesigma2=2*sigma*sigma;constgdoublel=sqrt(-

6、sigma2*log(1.0/255.0));intn=ceil(l)*2;if((n%2)==0)n+=1;從效果來看,這個(gè)實(shí)現(xiàn)的窗口半徑是約等于2.2*sigma。然后是第二個(gè)問題:給定窗口大小,怎么計(jì)算sigma?OpenCV的實(shí)現(xiàn),在cvFilter.cpp的init_gaussian_kernel函數(shù)中:sigmaX=sigma>0?sigma:(n/2–1)*0.3+0.8;sigma的大小約為窗口半徑的0.3倍再加上0.8。autopano沒有實(shí)現(xiàn)這個(gè)特性。GIMP的實(shí)現(xiàn):/*wewanttogen

7、erateamatrixthatgoesoutacertainradius*fromthecenter,sowehavetogooutceil(rad-0.5)pixels,*inlcudingthecenterpixel.Ofcourse,that’sonlyinonedirection,*sowehavetogothesameamountintheotherdirection,butnotcount*thecenterpixelagain.Sowedoublethepreviousresultandsubtr

8、act*one.*Theradiusparameterthatispassedtothisfunctionisusedas*thestandarddeviation,andtheradiusofeffectisthe*standarddeviation*2.It’salittleconfusing.*/radius=fabs(radius)+1.0;std_dev=radius;radius=std_dev*2;/*goout‘radius’ineachdirection*/matrix_length=2*cei

9、l(radius–0.5)+1;注釋講的很清楚了,基本上就是認(rèn)為sigma應(yīng)該等于窗口半徑的一半。看完這三份源碼,結(jié)論就是,關(guān)于sigma和窗口的大小,你愛怎么算都可以,這個(gè)由你的實(shí)際需要決定,別太離譜就行。(根據(jù)概率理論,高斯分布的樣本絕大部分集中在3倍標(biāo)準(zhǔn)差以內(nèi)的區(qū)域。)第三個(gè)問題是可分離濾波器:首先說明為什么要使用可分離濾波器。實(shí)際上,模板運(yùn)算(滑動(dòng)窗口卷積)在數(shù)字

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。