專利名稱:一種高斯模糊的實(shí)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,具體涉及一種高斯模糊的實(shí)現(xiàn)方法和裝置。
背景技術(shù):
在圖像/視頻處理軟件中,將圖像/視頻的內(nèi)容進(jìn)行模糊處理是一種很廣泛的需 求。目前實(shí)現(xiàn)模糊處理的方法通常有兩種,一種是盒子模糊(boxblur),另一種是高斯模糊 (Gaussian blur),其中 盒子模糊是一種簡單快速的模糊處理方法,但是它的模糊效果并不好,尤其是在 模糊程度比較大的情況下效果尤為不理想; 而高斯模糊被認(rèn)為是目前最理想的一種模糊處理方法,它的模糊效果看起來非常 自然、也非常舒服,但是高斯模糊的計(jì)算量通常要比盒子模糊大很多,具體地說,在圖像處 理過程中,高斯模糊就是將一幅圖像與二維高斯函數(shù)進(jìn)行巻積的結(jié)果。高斯函數(shù)的定義如 下 —維高斯函數(shù)g"Z^(JC)=工. 二維高斯函數(shù)g做M(x,力^^.e 2一
2;rcr 雖然高斯函數(shù)在整個(gè)實(shí)數(shù)域都有非O的函數(shù)值,但是為了簡化計(jì)算,通常巻積核 只取一個(gè)K*K范圍內(nèi)的離散函數(shù)值,超出了這個(gè)范圍就認(rèn)為為0 (實(shí)際上,高斯函數(shù)在距原 點(diǎn)3 o位置的函數(shù)值就已經(jīng)很接近0)。 在利用上述高斯函數(shù)進(jìn)行圖像模糊處理的過程中,只有一個(gè)輸入?yún)?shù),即圖像處 理寬度width,此時(shí),巻積核半徑R二 ceil (3物idth),巻積核寬度K二 2*R+1。由此可見,對 一幅M*N大小的圖像進(jìn)行高斯模糊處理需要進(jìn)行M*N*K*K步的計(jì)算過程才可以完成,顯然 這個(gè)計(jì)算量是很大的。進(jìn)一步地說,高斯模糊也不能采用盒子模糊的一些優(yōu)化方法來進(jìn)行 處理優(yōu)化,因此對于高效率的圖像/視頻處理軟件來說,現(xiàn)有技術(shù)中所提供的高斯模糊的 方法效率常常不能被接受。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是能夠減少高斯模糊的計(jì)算量,從而 提高高斯模糊的處理速度。 為達(dá)到以上目的,本發(fā)明采用的技術(shù)方案是
—種高斯模糊的實(shí)現(xiàn)方法,包括以下步驟
(1)根據(jù)外部輸入的圖像處理寬度確定巻積核; (2)利用所述巻積核對待處理圖像依次進(jìn)行水平一維高斯巻積和垂直一維高斯巻 積。 進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,在進(jìn)行水平一維高斯巻積時(shí),當(dāng)某個(gè)像素鄰域內(nèi)的所有像素都在起始像素與結(jié)束像素之間時(shí),對該像素直接進(jìn)行巻積,否則,根據(jù) 邊界像素延展的方法確定該像素值后再進(jìn)行巻積。 再進(jìn)一步,根據(jù)邊界像素延展的方法確定像素值進(jìn)一步為當(dāng)該像素位置小于起 始像素位置時(shí),以起始像素值作為該像素的值;當(dāng)該像素位置大于結(jié)束像素位置時(shí),以結(jié)束 像素值作為該像素的值。 進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,對待處理圖像依次進(jìn)行水平一維高斯 巻積和垂直一維高斯巻積進(jìn)一步地包括 設(shè)置能夠容納線條數(shù)為巻積核寬度值的循環(huán)緩沖區(qū); 按照水平線的上下順序?qū)Υ幚韴D像中水平線進(jìn)行逐條水平一維高斯巻積,并將 水平一維高斯結(jié)果順序循環(huán)存放在循環(huán)緩沖區(qū)中; 當(dāng)循環(huán)緩沖區(qū)內(nèi)數(shù)據(jù)被更新時(shí),利用當(dāng)前一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻 積。 進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,在所述的水平一維高斯巻積過程中,如 果巻積核寬度大于預(yù)置閾值時(shí),采用交疊相加與循環(huán)巻積的方法進(jìn)行巻積計(jì)算,否則直接 用鄰域像素與巻積核相乘求和的方法進(jìn)行巻積計(jì)算。 為實(shí)現(xiàn)上述方法,本發(fā)明還提出了一種高斯模糊的實(shí)現(xiàn)裝置,該裝置包括外部輸
入接收單元2、巻積核生成單元3、水平巻積單元4以及垂直巻積單元5,其中 所述外部輸入接收單元2,用于根據(jù)接收到的圖像處理寬度確定巻積核寬度; 所述巻積核生成單元3,用于根據(jù)巻積核寬度,以及高斯函數(shù)確定巻積核的具體數(shù)
值; 所述水平巻積單元4,用于對待處理圖像的每一行進(jìn)行水平一維高斯巻積;
所述垂直巻積單元5,用于對所述水平一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。
進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,所述水平巻積單元4,進(jìn)一步地用于在 某個(gè)像素鄰域內(nèi)的所有像素都在起始像素與結(jié)束像素之間時(shí),對該像素直接以鄰域相乘求 和的方法進(jìn)行水平一維高斯巻積計(jì)算,否則,采用邊界像素延展的方法進(jìn)行水平一維高斯 巻積計(jì)算。 進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,該裝置還包括緩存單元6,所述緩存 單元6能夠容納的線條數(shù)為巻積核寬度值,且用于緩存水平一維高斯巻積結(jié)果;此時(shí),所述 的水平巻積單元4順序?qū)Υ幚韴D像中水平線進(jìn)行逐條水平一維高斯巻積,且將結(jié)果提供 給緩存單元6 ;所述的垂直巻積單元5在緩存單元6內(nèi)容更新時(shí),對當(dāng)前一維高斯巻積結(jié)果 進(jìn)行垂直一維高斯巻積。 進(jìn)一步,為使本發(fā)明具有更好的發(fā)明效果,所述的水平巻積單元4中,預(yù)先存儲一
個(gè)閾值,當(dāng)巻積核寬度大于該閾值時(shí),采用交疊相加和循環(huán)巻積的方法進(jìn)行水平一維高斯
巻積,否則,直接用鄰域像素與巻積核相乘求和的方法進(jìn)行水平一維高斯巻積。 本發(fā)明的效果在于采用本發(fā)明所述的方法和裝置可以減少高斯模糊的計(jì)算量,
從而提高高斯模糊的處理速度。 本發(fā)明之所以能減少高斯模糊的計(jì)算量,提高高斯模糊處理速度的主要原因有如 下 (1)將二維高斯巻積分離為兩個(gè)一維高斯巻積,對圖像先從水平方向上進(jìn)行水平一維高斯巻積,再從垂直方向上進(jìn)行垂直一維高斯巻積,從而減少了計(jì)算量; (2)在圖像的水平位置預(yù)先設(shè)置安全區(qū)域和非安全區(qū)域,減少運(yùn)算過程中的條件
分支語句; (3)垂直一維高斯巻積利用設(shè)定的循環(huán)緩沖區(qū),使得每次計(jì)算完的水平巻積結(jié)果 立刻被用于垂直一維高斯巻積,提高CPU的緩存利用率; (4)當(dāng)巻積核較大時(shí),水平一維高斯巻積利用循環(huán)巻積的方法來提高速度。
圖1是本發(fā)明所述方法具體實(shí)施例的流程圖;
圖2和3是本發(fā)明所述裝置具體實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步的描述
實(shí)施例1 如圖1所示,一種高斯模糊的實(shí)現(xiàn)方法,包括以下步驟 (1)根據(jù)用戶輸入的圖像處理寬度width確定巻積核寬度K,具體為 首先,根據(jù)R = ceil (3*width)確定巻積核半徑R ; 然后,根據(jù)K = 2*R+1確定巻積核寬度K。
(2)根據(jù)巻積核寬度K,以及高斯函數(shù)確定巻積核的具體數(shù)值。
(3)根據(jù)確定的巻積核對待處理圖像進(jìn)行兩次一維高斯巻積,以得到目的圖像。該
步驟具體為 首先,對待處理圖像從水平方向?qū)γ恳恍羞M(jìn)行水平一維高斯巻積; 然后,對上述水平一維高斯巻積的結(jié)果從垂直方向進(jìn)行垂直一維高斯巻積。 可見,在上述步驟(3)中,目的圖像實(shí)際上是通過對待處理圖像先后兩次進(jìn)行一
維高斯巻積的計(jì)算而得到的,這樣的結(jié)果與對圖像進(jìn)行一次二維高斯巻積計(jì)算得到的結(jié)果
是相同的,這是因?yàn)槎S高斯函數(shù)恰好是兩個(gè)一維高斯函數(shù)的乘積,其可以被分離為兩個(gè)
一維高斯巻積。 如圖2所示, 一種高斯模糊的實(shí)現(xiàn)裝置,該裝置1包括外部輸入接收單元2、巻積核 生成單元3、水平巻積單元4以及垂直巻積單元5,其中 所述外部輸入接收單元2,用于根據(jù)接收到的圖像處理寬度width確定巻積核寬 度K,即,利用R = ceil (3*width)確定巻積核半徑R,再利用K = 2*R+1確定巻積核寬度K ;
所述巻積核生成單元3,用于根據(jù)巻積核寬度K,以及高斯函數(shù)確定巻積核的具體 數(shù)值; 所述水平巻積單元4,用于對待處理圖像的每一行進(jìn)行水平一維高斯巻積,以得到 水平一維高斯巻積結(jié)果; 所述垂直巻積單元5,用于對所述水平一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。
具體到本實(shí)施例中,仍以一副M*N大小的圖像為例,其與一個(gè)K*K的巻積核進(jìn)行分 離式的巻積只需要M*N*K*2的步驟即可,這明顯少于現(xiàn)有技術(shù)中利用二維高斯巻積計(jì)算時(shí) 所需要的M*N*K*K個(gè)步驟對應(yīng)的計(jì)算量。
由本實(shí)施例可以看出,根據(jù)本發(fā)明的高斯模糊的實(shí)現(xiàn)方法和裝置較之現(xiàn)有技術(shù),
不僅可以方便計(jì)算,提高計(jì)算速度,還可以提高高斯模糊處理的效率。 實(shí)施例2 本實(shí)施例2與實(shí)施例1的不同之處在于,本實(shí)施例2在實(shí)施例1的基礎(chǔ)上充分考 慮了在進(jìn)行水平一維高斯巻積時(shí),為了解決鄰近邊界像素的鄰域內(nèi)像素取值的問題,而引 入大量條件分支語句,從而影響計(jì)算效率的問題。因?yàn)?,在進(jìn)行水平一維高斯巻積時(shí),是利 用每個(gè)像素鄰域(即寬度為K的鄰域)內(nèi)的像素值與一維高斯巻積核相乘求和的方法來 計(jì)算的,但是對于一些比較靠近圖像邊界的像素,其鄰域內(nèi)的像素已經(jīng)超出了這條線的起 始位置或結(jié)尾位置,通常需要利用邊界像素延展的方法來模擬這些像素,也就是說,如果小 于起始像素位置,則用起始像素值作為該像素的值;如果大于結(jié)束像素位置,則用結(jié)束像素 值作為該像素的值。但是在利用上述方法進(jìn)行計(jì)算的過程中,需要在進(jìn)行相乘求和時(shí)引入 大量的條件分支語句來取得某個(gè)像素鄰域內(nèi)的像素值,而過多的條件分支命令會導(dǎo)致CPU 流水線效率降低,必然影響CPU的執(zhí)行效率。 為了實(shí)現(xiàn)更好的計(jì)算效率,實(shí)施例2在實(shí)施例1的基礎(chǔ)上充分考慮了鄰近邊界像 素的鄰域內(nèi)像素取值的問題,采用在水平位置預(yù)劃分安全區(qū)域和非安全區(qū)域的方法,在安 全區(qū)域內(nèi)的像素,其鄰域內(nèi)的所有像素都在起始像素與結(jié)束像素之間,而在非安全區(qū)域內(nèi) 的像素,其鄰域內(nèi)的所有像素并不都在起始像素與結(jié)束像素之間。對于位于非安全區(qū)域內(nèi) 的像素進(jìn)行鄰域相乘求和的步驟仍然采用現(xiàn)有技術(shù)中的邊界像素延展的方法,但對于位于 安全區(qū)域內(nèi)的像素進(jìn)行鄰域相乘求和的時(shí)候省略條件分支語句(因?yàn)樗械泥徲蛳袼囟?可以安全地訪問)。具體來說如圖1所示,一種高斯模糊的實(shí)現(xiàn)方法,在實(shí)施例1的基礎(chǔ) 上,步驟(3)中,進(jìn)行水平一維高斯巻積之前,先確定安全區(qū)域的像素和非安全區(qū)域的像 素,然后對于位于非安全區(qū)域內(nèi)的像素進(jìn)行鄰域相乘求和的步驟仍然采用現(xiàn)有技術(shù)中的邊 界像素延展的方法,但對于位于安全區(qū)域內(nèi)的像素直接進(jìn)行鄰域相乘求和,不再進(jìn)行判斷; 如圖2所示,一種高斯模糊的實(shí)現(xiàn)裝置,在其中的所述水平巻積單元4中,預(yù)先判斷像素是 否屬于安全區(qū)域,如果是,則直接以鄰域相乘求和的方法進(jìn)行水平一維高斯巻積計(jì)算,如果 否,則采用邊界像素延展的方法進(jìn)行水平一維高斯巻積計(jì)算。 由本實(shí)施例可以看出,由于通常情況下安全區(qū)域要遠(yuǎn)大于非安全區(qū)域,因此,運(yùn)算 過程中可以大量減少條件分支語句,從而可以使計(jì)算速度明顯提高,高斯模糊處理速度加 快。 實(shí)施例3 本實(shí)施例3與實(shí)施例1的不同之處在于,本實(shí)施例3在實(shí)施例1的基礎(chǔ)上充分考慮 了在進(jìn)行水平一維高斯巻積之后,需要一個(gè)較大的緩沖區(qū)進(jìn)行數(shù)據(jù)存儲,以造成CPU緩存 利用率降低的問題。因?yàn)樵趯?shí)施例1所介紹的高斯模糊的實(shí)現(xiàn)方法中,由于是對圖像先進(jìn) 行水平一維高斯巻積,然后再進(jìn)行垂直一維高斯巻積,那么通常需要分配一個(gè)和原圖像同 樣大的緩沖區(qū)來存放水平一維高斯巻積結(jié)果,然后以這個(gè)緩沖區(qū)內(nèi)的圖像(即水平一維 高斯巻積結(jié)果)為輸入再進(jìn)行垂直一維高斯巻積,結(jié)果放入目標(biāo)圖像中。由此,當(dāng)圖像尺寸 比較大時(shí),由于需要增加一個(gè)和原圖像尺寸一樣的臨時(shí)緩沖區(qū),勢必增加整個(gè)系統(tǒng)的負(fù)擔(dān); 在另一個(gè)方面,將圖像中所有行進(jìn)行了水平一維高斯巻積之后再進(jìn)行垂直一維高斯巻積的 做法對CPU緩存的利用效果很差,從而使得算法效率較低,這是因?yàn)楫?dāng)圖像比較大的時(shí)候,做完一遍水平一維高斯巻積之后,最后的一些直線在CPU緩存里面,然后在做垂直巻積的 時(shí)候,CPU還要再把以前處理過的大部分直線的內(nèi)容放入緩存以進(jìn)行處理。
為了提高提高對時(shí)間和空間效率,實(shí)施例3在實(shí)施例1的基礎(chǔ)上充分利用CPU緩 存,每次所計(jì)算的水平巻積結(jié)果立刻進(jìn)行垂直一維高斯巻積。即設(shè)置能夠容納線條數(shù)為 巻積核寬度值K的循環(huán)緩沖區(qū);按照水平線的上下順序?qū)Υ幚韴D像中水平線進(jìn)行逐條水 平一維高斯巻積,并將水平一維高斯巻積結(jié)果順序循環(huán)存放在循環(huán)緩沖區(qū)中;當(dāng)循環(huán)緩沖 區(qū)中數(shù)據(jù)更新時(shí),利用當(dāng)前一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。具體來說,如圖l所 示,一種高斯模糊的實(shí)現(xiàn)方法,在實(shí)施例1的基礎(chǔ)上,步驟(3)更具體的實(shí)現(xiàn)步驟如下
(o)分配一個(gè)能容納K條線大小的緩沖區(qū),將對第一條線做垂直巻積所需要的R+l 條線的水平巻積結(jié)果放入到這個(gè)緩沖區(qū)的前R+1條線的位置之中(說明一點(diǎn)此處之所以 第一條線的垂直巻積只需要R+l條水平巻積線是因?yàn)槊總€(gè)像素的垂直鄰域的上面R個(gè)像素 是超界的,應(yīng)該用第一條線的像素代替); (p)對第一條線在垂直鄰域內(nèi)的線與巻積核做相乘求和處理,即,進(jìn)行垂直一維高 斯巻積,計(jì)算結(jié)果所得到的線即為最終目標(biāo)圖像的第一條線; (q)對第二條線在垂直鄰域內(nèi)的線與巻積核做相乘求和處理,這時(shí)又多需要一條 水平巻積線,所以將第二條線進(jìn)行水平巻積處理,結(jié)果放入到所設(shè)置緩沖區(qū)的最后一條線 的后面,說明一點(diǎn)如果超出了緩沖區(qū)總線數(shù),就放到第一條線的位置,這是由循環(huán)緩沖區(qū) 的具體含義所確定的,而且因?yàn)閷σ粭l線做鄰域線與巻積核相乘求和最多需要K條線,因
此緩沖區(qū)不會出現(xiàn)空間不足的現(xiàn)象;
...... (r)按上述步驟依次類推,完成整個(gè)算法過程,即完成整個(gè)高斯模糊處理過程。
如圖3所示,一種高斯模糊的實(shí)現(xiàn)裝置,在圖2所示的裝置基礎(chǔ)上增加了緩存單元 6,可以容納K條線,用于緩存水平一維高斯巻積結(jié)果;此時(shí),所述的水平巻積單元4按照順 序?qū)Υ幚韴D像中水平線進(jìn)行逐條水平一維高斯巻積,且將結(jié)果提供給緩存單元6 ;所述 的垂直巻積單元5在緩存單元6內(nèi)容更新時(shí),對當(dāng)前一維高斯巻積結(jié)果進(jìn)行垂直一維高斯 巻積。 由本實(shí)施例可以看出,利用利用循環(huán)緩沖區(qū)的方法需要較少的臨時(shí)緩沖區(qū)空間, 且每次所計(jì)算的水平巻積線立刻就會被垂直巻積用到,由此對CPU緩存的利用率也很高。
實(shí)施例4 本實(shí)施例4與上述實(shí)施例的不同之處在于,本實(shí)施例在實(shí)施例1的基礎(chǔ)上充分考 慮了在進(jìn)行水平一維高斯巻積過程中,巻積核寬度K較大時(shí)計(jì)算時(shí)間仍然較長的問題。因 為在以上實(shí)施例中所介紹的高斯模糊的實(shí)現(xiàn)方法中,對一條線進(jìn)行水平一維高斯巻積的計(jì) 算步驟是M*K,當(dāng)K值較大時(shí),顯然會花費(fèi)相當(dāng)長的時(shí)間。 為了進(jìn)一步提高運(yùn)算速度,也即提高高斯模糊處理效率,實(shí)施例4中當(dāng)K值較大 時(shí),進(jìn)行水平一維高斯巻積采用循環(huán)巻積的方法。循環(huán)巻積可以將兩個(gè)有限序列的巻積轉(zhuǎn) 化為計(jì)算其離散傅立葉變換之間乘積的反離散傅立葉變換的形式,而傅立葉變換有快速算 法(FFT),所以利用循環(huán)巻積的方式進(jìn)行水平巻積計(jì)算可以大大減少總體的計(jì)算步驟,加快 模糊處理速度。但是,由于快速傅立葉變換算法要求序列的長度是2的冪次方,因此需要對 圖像的每線信號與巻積核都作擴(kuò)展才能計(jì)算,但當(dāng)巻積核比圖像的寬度小很多的時(shí)候,直
7接使用這種方法就會做比較多的多余計(jì)算,使得優(yōu)化效果大打折扣。為此我們在進(jìn)行循環(huán) 巻積之前可以采用了交疊相加方法(overlap-add method)來將每條線分段進(jìn)行巻積。有 關(guān)離散傅立葉變換、循環(huán)巻積、交疊相加方法等理論均為現(xiàn)有技術(shù),可以參考相關(guān)文獻(xiàn)或如 下網(wǎng)絡(luò)資源http://en.wikipedia.org/wiki/Discrete Fourier transform#Circular convolution theorem and cross—correlation theorem
http://en. wikipedia. org/wiki/0verlap_add method 優(yōu)選地,可以預(yù)先設(shè)置一個(gè)閾值,只有當(dāng)巻積核寬度大于該閾值時(shí),才采用交疊相 加和循環(huán)巻積的方式進(jìn)行計(jì)算,否則,仍然直接用鄰域像素與巻積核相乘求和的方法。此處 所述的閾值是根據(jù)經(jīng)驗(yàn)來確定的,在具體實(shí)現(xiàn)中,當(dāng)圖像為rgba空間圖像時(shí),這個(gè)閾值一 般定為181 ;當(dāng)圖像為單通道灰度圖像時(shí),這個(gè)閾值一般定為91。 對于該實(shí)施例,具體來說,假設(shè)在該實(shí)例中圖像每行有M個(gè)點(diǎn),其巻積核寬度為K =2*R+1。此時(shí),一種高斯模糊的實(shí)現(xiàn)方法,在實(shí)施例1中的基礎(chǔ)上,步驟(3)中對一條線進(jìn) 行水平一維高斯巻積的步驟如下 由于需要考慮邊界效應(yīng),所以對實(shí)際圖像的信號進(jìn)行邊界擴(kuò)張,即對該信號每行
前后各擴(kuò)展R個(gè)像素,前面R個(gè)像素填充對應(yīng)行的第一個(gè)像素的值,后面R個(gè)像素填充對應(yīng)
行的最后一個(gè)像素的值,即,進(jìn)行邊界擴(kuò)展后,該信號的長度變?yōu)镸+2*R ; 將經(jīng)過邊界擴(kuò)展后的上述信號放入臨時(shí)緩沖區(qū)內(nèi);根據(jù)巻積的特性,將上述信號
與巻積核進(jìn)行巻積后,新信號的長度變?yōu)镸+扭R,但是實(shí)際上所被關(guān)心的只是這個(gè)新的信號
序列中[2*R,2*R+M)這部分; 確定數(shù)字N,使得N > 4*R,且是2的冪次方中最小的數(shù),令L = N_2*R ;(舉例來 說,如果R = 100,那么N = 512, L = 312); 將長度為M+2*R的邊界擴(kuò)展后的信號按L為長度分成若干段(最后不夠長的部分 則補(bǔ)0),把每一段信號再擴(kuò)展成一個(gè)長度為N的信號(多出的補(bǔ)0),再將巻積核也擴(kuò)展成 一個(gè)長度為N的信號,然后利用快速傅立葉變換的方法分別求出這兩個(gè)信號的離散傅立葉 系數(shù)(說明一點(diǎn)實(shí)際上,由巻積核擴(kuò)展出來的那個(gè)離散傅立葉系數(shù)在整個(gè)算法中只需要 做一次); 然后將兩個(gè)序列的離散傅立葉系數(shù)相乘,之后利用快速傅立葉反變換進(jìn)行反變 換;將反變換之后的結(jié)果和上一段的重疊部分結(jié)果相加(每兩段有2AR個(gè)重疊點(diǎn));
當(dāng)所有段都處理完后的結(jié)果就是巻積的結(jié)果。 說明一點(diǎn),在上述步驟中,傅立葉變換、循環(huán)巻積以及交疊相交的方法為本領(lǐng)域技 術(shù)人員所熟知。 如圖2所示,一種高斯模糊的實(shí)現(xiàn)裝置,在其中的所述水平巻積單元4中,預(yù)先存
儲一個(gè)閾值,當(dāng)判斷巻積核寬度大于該閾值時(shí),采用交疊相加和循環(huán)巻積的方法進(jìn)行水平
一維高斯巻積,否則,直接用鄰域像素與巻積核相乘求和的方法進(jìn)行水平一維高斯巻積。 由本實(shí)施例可以看出,由于在K值較大時(shí),采用了交疊相加和循環(huán)巻積的方式進(jìn)
行水平一維高斯巻積,使得運(yùn)算速度大大提高,高斯模糊處理速度也隨之加快。 由上述實(shí)施例1-實(shí)施例4看出,采用本發(fā)明所述的方法和裝置能夠有效地提高高
斯模糊的處理速度。
8
本發(fā)明所述的方法和裝置并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人 員根據(jù)本發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
權(quán)利要求
一種高斯模糊的實(shí)現(xiàn)方法,包括以下步驟(1)根據(jù)外部輸入的圖像處理寬度確定卷積核;(2)利用所述卷積核對待處理圖像依次進(jìn)行水平一維高斯卷積和垂直一維高斯卷積。
2. 如權(quán)利要求1所述的一種高斯模糊的實(shí)現(xiàn)方法,其特征是在進(jìn)行水平一維高斯巻 積時(shí),當(dāng)某個(gè)像素鄰域內(nèi)的所有像素都在起始像素與結(jié)束像素之間時(shí),對該像素直接進(jìn)行 巻積,否則,根據(jù)邊界像素延展的方法確定該像素值后再進(jìn)行巻積。
3. 如權(quán)利要求2所述的一種高斯模糊的實(shí)現(xiàn)方法,其特征是根據(jù)邊界像素延展的方 法確定像素值進(jìn)一步為當(dāng)該像素位置小于起始像素位置時(shí),以起始像素 值作為該像素的 值;當(dāng)該像素位置大于結(jié)束像素位置時(shí),以結(jié)束像素值作為該像素的值。
4. 如權(quán)利要求1所述的一種高斯模糊的實(shí)現(xiàn)方法,其特征是對待處理圖像依次進(jìn)行 水平一維高斯巻積和垂直一維高斯巻積進(jìn)一步地包括設(shè)置能夠容納線條數(shù)為巻積核寬度值的循環(huán)緩沖區(qū);按照水平線的上下順序?qū)Υ幚韴D像中水平線進(jìn)行逐條水平一維高斯巻積,并將水平 一維高斯結(jié)果順序循環(huán)存放在循環(huán)緩沖區(qū)中;當(dāng)循環(huán)緩沖區(qū)內(nèi)數(shù)據(jù)被更新時(shí),利用當(dāng)前一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。
5. 如權(quán)利要求1或者4所述的一種高斯模糊的實(shí)現(xiàn)方法,其特征是在所述的水平一 維高斯巻積過程中,如果巻積核寬度大于預(yù)置閾值時(shí),采用交疊相加與循環(huán)巻積的方法進(jìn) 行巻積計(jì)算,否則直接用鄰域像素與巻積核相乘求和的方法進(jìn)行巻積計(jì)算。
6. —種高斯模糊的實(shí)現(xiàn)裝置,該裝置包括外部輸入接收單元(2)、巻積核生成單元 (3)、水平巻積單元(4)以及垂直巻積單元(5),其中所述外部輸入接收單元(2),用于根據(jù)接收到的圖像處理寬度確定巻積核寬度; 所述巻積核生成單元(3),用于根據(jù)巻積核寬度,以及高斯函數(shù)確定巻積核的具體數(shù)值;所述水平巻積單元(4),用于對待處理圖像的每一行進(jìn)行水平一維高斯巻積; 所述垂直巻積單元(5),用于對所述水平一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。
7. 如權(quán)利要求6所述的一種高斯模糊的實(shí)現(xiàn)裝置,其特征是所述水平巻積單元(4), 進(jìn)一步地用于在某個(gè)像素鄰域內(nèi)的所有像素都在起始像素與結(jié)束像素之間時(shí),對該像素直 接以鄰域相乘求和的方法進(jìn)行水平一維高斯巻積計(jì)算,否則,采用邊界像素延展的方法進(jìn) 行水平一維高斯巻積計(jì)算。
8. 如權(quán)利要求6所述的一種高斯模糊的實(shí)現(xiàn)裝置,其特征是該裝置還包括緩存單元(6),所述緩存單元(6)能夠容納的線條數(shù)為巻積核寬度值,且用于緩存水平一維高斯巻 積結(jié)果;此時(shí),所述的水平巻積單元(4)順序?qū)Υ幚韴D像中水平線進(jìn)行逐條水平一維高 斯巻積,且將結(jié)果提供給緩存單元(6);所述的垂直巻積單元(5)在緩存單元(6)內(nèi)容更新 時(shí),對當(dāng)前一維高斯巻積結(jié)果進(jìn)行垂直一維高斯巻積。
9. 如權(quán)利要求6所述的一種高斯模糊的實(shí)現(xiàn)裝置,其特征是所述的水平巻積單元(4) 中,預(yù)先存儲一個(gè)閾值,當(dāng)巻積核寬度大于該閾值時(shí),采用交疊相加和循環(huán)巻積的方法進(jìn)行 水平一維高斯巻積,否則,直接用鄰域像素與巻積核相乘求和的方法進(jìn)行水平一維高斯巻 積。
全文摘要
本發(fā)明涉及一種高斯模糊的實(shí)現(xiàn)方法和裝置,屬于圖像處理技術(shù)領(lǐng)域?,F(xiàn)有技術(shù)中實(shí)現(xiàn)高斯模糊計(jì)算量大,處理速度慢。本發(fā)明所述的方法包括對待處理圖像依次進(jìn)行水平一維高斯卷積和垂直一維高斯卷積。本發(fā)明還給出一種實(shí)現(xiàn)該方法的裝置,包括用于根據(jù)接收到的圖像處理寬度確定卷積核寬度的外部輸入接收單元、用于根據(jù)卷積核寬度,以及高斯函數(shù)確定卷積核的具體數(shù)值的卷積核生成單元、用于對待處理圖像的每一行進(jìn)行水平一維高斯卷積的水平卷積單元以及用于對所述水平一維高斯卷積結(jié)果進(jìn)行垂直一維高斯卷積的垂直卷積單元。采用本發(fā)明所述的方法和裝置減少了高斯模糊的計(jì)算量,從而提高處理速度。
文檔編號G06T5/00GK101763627SQ20081023951
公開日2010年6月30日 申請日期2008年12月12日 優(yōu)先權(quán)日2008年12月12日
發(fā)明者劉鐵華, 孫季川, 見良, 鄭鵬程 申請人:新奧特(北京)視頻技術(shù)有限公司