卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波
【轉(zhuǎn)載請(qǐng)注明來源和作者】
在第一篇文章里面,我提到計(jì)算攝影學(xué)是計(jì)算機(jī)圖形學(xué),計(jì)算機(jī)視覺,光學(xué)和傳感器等領(lǐng)域的交叉學(xué)科,在這個(gè)領(lǐng)域我們可以用強(qiáng)大的圖像算法,對(duì)傳感器所獲取的信息做任意的處理,得到豐富多彩的效果。
那么,可以對(duì)圖像做哪些處理呢?基本的處理包括如下兩大類,
改變圖像的像素值, 我們稱為濾波(Filtering)
改變圖像的像素位置,我們稱為扭曲(Warping)
在接下來的幾篇文章里面,我們都會(huì)重點(diǎn)探討濾波問題。
一. 點(diǎn)處理
在濾波時(shí),根據(jù)目標(biāo)像素信息的來源,可以分為點(diǎn)操作和鄰域操作兩類。點(diǎn)操作是指目標(biāo)像素僅僅依賴于對(duì)應(yīng)的源像素,跟其他的像素沒有關(guān)系。鄰域操作則相反,事實(shí)上我們可以認(rèn)為點(diǎn)操作是鄰域操作的一種特殊實(shí)例。
下圖中列出了一些典型的點(diǎn)操作,當(dāng)你使用Python或Matlab這樣的語(yǔ)言時(shí),可以輕松的實(shí)現(xiàn)這些操作,可以參見這一章的Jupyter Notebook
在第2篇文章提到的相機(jī)內(nèi)基本處理中,White Blalance, Color Transforms等操作都是點(diǎn)操作。
二. 線性移不變?yōu)V波器
2.1 基本概念
在鄰域操作中,比較基礎(chǔ)且重要的是一類稱為線性移不變的濾波器,英文里叫做Linear Shift-Invariant Image Filtering。
這里:
線性,是指最終生成的像素值是由鄰域像素值線性混合而成
移不變,是指不管對(duì)于哪個(gè)坐標(biāo)的像素,其線性混合的系數(shù)都是一致的,不會(huì)因?yàn)橄袼刈鴺?biāo)的變化而變化
一個(gè)非常典型的線性移不變?yōu)V波器是Box Filter,下圖展示了它的工作原理。(注,這里可以看到圖像的邊緣像素因?yàn)闆]有足夠的信息輸入,所以在boxFilter后沒有值可以填充,因此后文會(huì)介紹如何處理圖像的邊緣)
Box Filter我們可以用boxFilter來對(duì)圖像進(jìn)行模糊,當(dāng)調(diào)整它的核窗口大小時(shí),可以得到不同程度的模糊結(jié)果。下圖是用boxFilter對(duì)愛因斯坦照片進(jìn)行模糊的結(jié)果:
線性移不變?yōu)V波器通常用卷積(Convolution)來實(shí)現(xiàn),當(dāng)處理一維信號(hào)時(shí),卷積可以表示成:
例如,對(duì)方波信號(hào)進(jìn)行濾波時(shí),相關(guān)的函數(shù)為:
而到了二維圖像,卷積則表示為:
3x3的box filter可以表示為:
這里我們可以很容易看到,如果圖像的尺寸為HxW, 濾波器尺寸為NxN, 則二維濾波器的時(shí)間復(fù)雜度為O(WHN2), 那么有沒有方法可以降低此復(fù)雜度呢?
一種典型的方法是將二維的濾波轉(zhuǎn)換成兩個(gè)一維濾波,例如:
這時(shí),濾波器的時(shí)間復(fù)雜度會(huì)變?yōu)?O(2WHN)
2.2 更多實(shí)例
box filter可以平滑圖像,但是它也有一些缺點(diǎn),例如它平滑的效果不夠自然,特別是在原始圖像有比較密集的細(xì)節(jié)紋理時(shí),boxFilter會(huì)產(chǎn)生網(wǎng)格狀的效應(yīng),如下圖所示。它產(chǎn)生的原因是box filter的濾波核決定了不管離中心像素多遠(yuǎn)的像素的權(quán)重都是一樣的,這使得遠(yuǎn)離中心像素的信息在濾波后會(huì)融入到中心像素中。
一種更光滑的濾波器是高斯濾波(Gaussian Image Filter),它的公式和示意圖如下
可以看到,在一個(gè)濾波核中,離中心點(diǎn)越遠(yuǎn)的像素權(quán)重越小。對(duì)于離散的數(shù)字圖像,我們一般取半徑為2~3σ的窗口大小作為濾波核的尺寸, 例如下面是一個(gè)典型的3x3的高斯濾波核:
下面的圖可以明顯看出Gaussian Filter和Box Filter的區(qū)別:
三. 圖像梯度和邊緣
3.1 圖像的導(dǎo)數(shù)
有著基本高數(shù)知識(shí)的讀者肯定知道,函數(shù)的變化率可以用其導(dǎo)數(shù)來求得,在函數(shù)值突變處的導(dǎo)數(shù)比其他地方大。對(duì)于圖像來說也是一樣,我們可以通過對(duì)圖像求導(dǎo)數(shù)來得到圖像的不連續(xù)處,進(jìn)而獲取圖像的邊緣。那么如何對(duì)圖像求導(dǎo)呢,一般來說是通過有限差分函數(shù)來完成。其公式和1維表現(xiàn)形式是一個(gè)1x3的卷積核(水平梯度),或3x1的卷積核(垂直梯度):
直接對(duì)圖像求導(dǎo)會(huì)受到噪聲的干擾,因此一般需要對(duì)圖像先做一次平滑,減少噪聲的干擾,再做求導(dǎo)。例如,典型Sobel核,它的水平和垂直形式形式表現(xiàn)如下:
比較有趣的是,水平Sobel濾波核最終會(huì)凸顯出圖像的垂直線條,而垂直Sobel濾波核最終會(huì)凸顯出圖像的水平線條,如下圖:
除了Sobel濾波核之外,還有很多濾波核,下面是典型的幾種濾波核
3.2 圖像的梯度和邊緣
當(dāng)有了圖像的導(dǎo)數(shù)后,就可以得到圖像的梯度,它定義為:
通過水平和垂直方向的導(dǎo)數(shù),我們可以求得梯度的幅值和方向
下圖是分別展示了水平求導(dǎo)結(jié)果、垂直求導(dǎo)結(jié)果,及梯度的幅值。可以很容易通過梯度來得到圖像的邊緣,以及邊緣的方向。
3.2 DoG濾波器以及LoG濾波器
我們前面講過,對(duì)圖像求導(dǎo)很容易受到噪聲的干擾,盡管如Sobel一類的濾波核已經(jīng)包含了對(duì)圖像的平滑處理來減輕噪聲的影響,但當(dāng)噪聲很多時(shí),依然不夠。但可以采用同樣的原理得到新的對(duì)噪聲更魯棒的濾波方式:
這里,f代表信號(hào),h代表blur核,用于平滑圖像。當(dāng)h是高斯核且是一階梯度時(shí),我們稱上式右邊的下圖單元為Derivative of Gaussian (DoG)濾波器。
上式等號(hào)左邊的物理意義是先平滑圖像,去除噪聲的干擾,然后再求導(dǎo)。我們可以看看在一維情況下的表現(xiàn):
按照等號(hào)左邊來求導(dǎo),會(huì)使得要做兩次對(duì)原信號(hào)的卷積,計(jì)算量較大,而等式右邊的形式則可以大大減輕計(jì)算量,因?yàn)樗恍枰鲆淮尉矸e即可,如下圖所示,可以看到最終的結(jié)果和上圖中的一致,但是計(jì)算量少了很多。
DoG濾波器可以得到圖像的邊緣信息,而且對(duì)噪聲比較魯棒,在二維形式下它的示意圖如下
DoG實(shí)際上是由一個(gè)高斯核和一個(gè)一階梯度核組成,我們還可以使用高斯核和二階梯度核來構(gòu)成另外一種濾波器,即Laplacian of Gaussian (LoG)濾波器。
先來看看laplacian濾波器,它可以用二階有限差分來獲得,如下圖展示了水平laplacian濾波器
這樣,如果我們按照同樣的原理組合上高斯核,就可以得到LoG濾波器,下面是一維情況下的示意:
可以很容易觀察到,函數(shù)的跳變處恰好就是二階導(dǎo)數(shù)過零點(diǎn)的地方。在圖像中,這也就是邊緣所在的位置。
來比較下幾個(gè)濾波器吧:
下圖展示了直接使用Laplacian濾波器和使用LoG濾波器來獲取邊緣的效果對(duì)比,由于Laplacian濾波器對(duì)噪聲非常敏感,因此可以看到其結(jié)果中會(huì)出現(xiàn)大量的非邊緣響應(yīng),這些都是噪聲所在的位置。而LoG濾波器的結(jié)果則很干凈:
當(dāng)與DoG相比時(shí),結(jié)果如下。可以看到DoG得到的圖像邊緣通常比較粗,由多個(gè)像素組成,而LoG則相對(duì)來說可以得到更加準(zhǔn)確的邊緣。
四. 總結(jié)
這篇帖子主要介紹了圖像的線性移不變?yōu)V波器,它只是所有可能的圖像變換中的一種基本形式。在后面的帖子中,我還會(huì)進(jìn)一步介紹更多的圖像變換的知識(shí),感謝你的閱讀。
我在如下的Jupyter Notebook中展示了本帖中的相關(guān)操作,你可以對(duì)著它獲取更深入的理解,也能夠進(jìn)一步掌握用Python來進(jìn)行圖像處理的一些技巧。
nbviewer.jupyter.org/gi
跟這一系列專題文章相關(guān)的Notebook可以從github.com/yourwanghao/獲取
參考資料:
這一篇文章的絕大部分素材來自于
[1]?CMU 2017 Fall Computational Photography Course 15-463, Lecture 3
如果不做特別說明,素材均來自于[1]
我也會(huì)參考下面的重要資料中的內(nèi)容
[2] Richard Szeliski, Computer Vision : Algorithms and Applications, Section 3.2
總結(jié)
以上是生活随笔為你收集整理的卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wcdma系统随机接入过程的流程图_重庆
- 下一篇: book mac pro怎么重装系统_M