專利名稱:基于四邊形包坍塌的超大圖像快速融合算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖像領(lǐng)域,尤其涉及一種基于四邊形包坍塌的超大圖像快速融合算法。
背景技術(shù):
圖像合成是通過各種方法將多源圖像無縫結(jié)合成一個(gè)完整的圖像。目前已經(jīng)有很多的解決方案,早期的方法往往把重點(diǎn)放在每個(gè)像素的處理。
基于金字塔的混合方法,它結(jié)合不同的頻段,減少在紋理區(qū)域中的邊緣的重復(fù),并在較低的頻率產(chǎn)生逐漸過渡,該方法不考慮像素之間的關(guān)系。而通過蒙太奇合成的整個(gè)圖像需要選擇源代碼補(bǔ)丁。
近年來,許多圖像處理技術(shù)集中在梯度域的操作,并已取得一些較好的效果。梯度域方法利用梯度屬性,可以結(jié)合許多不同的源圖像,通過求解泊松方程無縫地產(chǎn)生整個(gè)圖像,該方法已吸引了很多的研究關(guān)注。許多基于梯度域的方法從源頭上提取梯度形成所需的梯度域,而不是從源圖像復(fù)制絕對(duì)顏色成一個(gè)合成圖像,然后,他們產(chǎn)生的新圖像使得縫合處的像素差在最小二乘意義最符合所需的梯度。梯度域技術(shù)不僅可用于合成圖像區(qū)域, 可以執(zhí)行各種應(yīng)用程序基于梯度域約束,從陰影去除、高動(dòng)態(tài)范圍壓縮、閃光偽影校正、α 消光、圖像二次照明、梯度域繪畫等,還是計(jì)算攝影和視頻領(lǐng)域廣泛使用的算法。盡管基本的梯度域技術(shù)具有廣泛適用性,但是其可擴(kuò)展性差,所有的梯度域技術(shù)都需要解決大型稀疏線性系統(tǒng)的泊松方程,然而,求解一個(gè)線性系統(tǒng)是一個(gè)計(jì)算和內(nèi)存密集型的任務(wù)。無論是在時(shí)間和空間都會(huì)變得很困難,當(dāng)圖像的尺寸顯著增加時(shí),如百萬(wàn)像素的圖像,甚至千兆像素的圖像拼接多個(gè)圖像或由專業(yè)的相機(jī)拍攝的圖像,梯度域技術(shù)限制了其采用這些百萬(wàn)像素、千兆像素的數(shù)碼圖像,而這些圖像在許多領(lǐng)域往往是常用的。
目前已有不同的策略來解決上述問題。Quardtree (QT)方法能夠大大降低問題的難度,并實(shí)現(xiàn)視覺上相同的結(jié)果,但QT并不適合非常大的圖像,也未能充分利用目前的GPU 的計(jì)算能力,合成圖像的均方誤差(MSE)隨圖像尺寸的增加而增加,這可能會(huì)導(dǎo)致令人討厭的視覺效果細(xì)節(jié)。流式多網(wǎng)格(SM)的方法,其結(jié)合了多重網(wǎng)格的計(jì)算與數(shù)據(jù)流框架的千兆像素的圖像處理,但是,SM仍然需要求解線性系統(tǒng)的像素的數(shù)量的排序,而且它的實(shí)現(xiàn)是復(fù)雜的。發(fā)明內(nèi)容
本發(fā)明提供了一種基于四邊形包坍塌的超大圖像快速融合算法,大大地減少了時(shí)間和內(nèi)存的消耗,且容易實(shí)施。
—種基于四邊形包坍塌的超大圖像快速融合算法,包括
(1)通過四邊形坍塌將全分辨率圖像生成低分辨率的坍塌圖像
將待融合的原始圖像劃分成若干四邊形,提取各四邊形水平邊界的像素構(gòu)成水平坍塌圖像,提取各四邊形垂直邊界的像素構(gòu)成垂直坍塌圖像;
(2)針對(duì)水平坍塌圖像和垂直坍塌圖像分別構(gòu)建紐曼條件泊松方程
分別從坍塌圖像的R/G/B三個(gè)通道構(gòu)建紐曼條件泊松方程(線性方程組Ax=b),令 坍塌圖像中的每個(gè)像素對(duì)應(yīng)的拉普拉斯算子為零,即構(gòu)成所述紐曼條件泊松方程;
計(jì)算角點(diǎn)像素的拉普拉斯算子時(shí),定義當(dāng)前像素的權(quán)重為2,其他像素的權(quán)重 為-1 ;計(jì)算邊界像素的拉普拉斯算子時(shí),定義當(dāng)前像素的權(quán)重為3,其他像素的權(quán)重為-1 ;
(3)求解每一個(gè)四邊形內(nèi)部的像素;
通過SM算法求解水平坍塌圖像和垂直坍塌圖像的紐曼條件泊松方程,得出每一 個(gè)四邊形的邊界像素值,再根據(jù)每一個(gè)四邊形的邊界像素值計(jì)算得出每一個(gè)四邊形的內(nèi)部 像素值,最終將所有邊界像素值和內(nèi)部像素值融合成無縫圖像,即完成原始圖像的融合。
將待融合的原始圖像劃分成若干四邊形,所述四邊形為大小相等的矩形。
步驟(I)中,各四邊形水平邊界的像素構(gòu)成水平坍塌圖像時(shí),按照各四邊形在原始 圖像中的位置進(jìn)行像素排序。
相應(yīng)的,各四邊形垂直邊界的像素構(gòu)成垂直坍塌圖像時(shí),按照各四邊形在原始圖 像中的位置進(jìn)行像素排序。
步驟(2 )中,所述坍塌圖像為水平坍塌圖像或垂直坍塌圖像,分別針對(duì)水平坍塌圖 像或垂直坍塌圖像的R/G/B三個(gè)通道分別構(gòu)建紐曼條件泊松方程(線性方程組Ax=b)。
步驟(2)中,計(jì)算角點(diǎn)像素的拉普拉斯算子時(shí),所述角點(diǎn)像素為水平坍塌圖像或垂 直坍塌圖像的角點(diǎn)像素。
計(jì)算邊界像素的拉普拉斯算子時(shí),所述邊界像素為水平坍塌圖像或垂直坍塌圖像 的邊界像素。
步驟(3)中,根據(jù)每一個(gè)四邊形的邊界像素值,通過雙線性插值計(jì)算得出內(nèi)部像素值。
步驟(3)中,根據(jù)每一個(gè)四邊形的邊界像素值,通過重新構(gòu)建泊松方程,求解以后 得出內(nèi)部像素值。
每個(gè)四邊形分別對(duì)應(yīng)一個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包相關(guān)的運(yùn)算獨(dú)立地在一個(gè)GPU線程 完成。
本發(fā)明首先將原始圖像劃分成很多四邊形,對(duì)四邊形內(nèi)部的像素進(jìn)行坍塌(去掉 內(nèi)部的像素,保留邊界的像素),所有的邊界像素構(gòu)成兩幅坍塌后的圖像即垂直坍塌圖像和 水平坍塌圖像,所有的操作都在這兩幅圖像上進(jìn)行,最后根據(jù)這兩幅圖像解出所有四邊形 的邊界像素值,通過在GPU上計(jì)算每個(gè)四邊形的內(nèi)部像素值,由于這些四邊形的內(nèi)部像素 值計(jì)算相互獨(dú)立,所以有很好的獨(dú)立性。因本發(fā)明的算法針對(duì)坍塌圖像求解紐曼條件泊松 方程,而坍塌圖像是原始圖像的千分之幾甚至更小,所以需要很少的內(nèi)存或時(shí)間就可以完 成,而四邊形內(nèi)部像素值可以通過雙線性插值計(jì)算,充分利用GPU的高并行計(jì)算能力。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為
(I)本發(fā)明將超大圖像融合問題由在全分辨率圖像上解泊松方程轉(zhuǎn)變?yōu)樵谳^低分 辨率圖像上解泊松方程,大大地減少了時(shí)間和內(nèi)存的消耗,同時(shí)算法容易實(shí)施。
(2)本發(fā)明算法采用的數(shù)據(jù)結(jié)構(gòu)是均勻一致的,每個(gè)數(shù)據(jù)包都可以獨(dú)立地在一個(gè) GTO線程完成,能夠容易地和GPU的多線程內(nèi)存數(shù)據(jù)結(jié)構(gòu)很好地映射到一起,充分利用了 GPU的計(jì)算能力。
(3)本發(fā)明算法可以計(jì)算超過實(shí)際內(nèi)存尺寸的圖像,適合于幾乎所有的超大圖像的融合應(yīng)用。
具體實(shí)施方式
超大圖像(幾個(gè)G字節(jié)或者更大)的顏色融合需要在整幅圖像上解泊松方程,求解由超大圖像產(chǎn)生的泊松方程需要耗費(fèi)幾十甚至上百G的內(nèi)存,同時(shí)需要幾百甚至上千小時(shí),在目前的機(jī)器條件下直接在超大圖像上進(jìn)行顏色融合幾乎是不可能的。本發(fā)明算法的關(guān)鍵是通過在縮減的空間求解線性系統(tǒng)來產(chǎn)生結(jié)果圖像,將超大圖像(原始圖像)分解成兩個(gè)低分辨率的圖像,這里的低分辨率圖像被稱為坍塌圖像(垂直坍塌圖像或水平坍塌圖像),然后根據(jù)坍塌圖像的水平和垂直梯度的限制分別構(gòu)建紐曼邊界條件解決泊松方程(紐曼條件泊松方程),通過求解紐曼條件泊松方程得出每一個(gè)四邊形的邊界像素值,通過雙峰線性插值計(jì)算出每一個(gè)四邊形的內(nèi)部像素值,所有的邊界像素值和內(nèi)部像素值融合成無縫圖像。
具體步驟如下
(I)通過四邊形坍塌將全分辨率圖像生成低分辨率圖像
將具有N*M像素的原始圖像(IOTiginal),分解成許多四邊形包(四邊形),一般為大小相等的矩形,每個(gè)四邊形包的大小設(shè)置應(yīng)合適。根據(jù)上述分解,使用四邊形坍塌生成在兩個(gè)方向上(水平方向和垂直方向)的圖像。
在水平方向,只保留所有四邊形水平邊界的像素,丟棄其他所有的像素,包括內(nèi)部像素和垂直邊界的像素,因此,保留的像素按照各四邊形在原始圖像中的位置進(jìn)行像素排序,構(gòu)成水平坍塌圖像IraIiapse^
同樣,在垂直方向上,只保留所有四邊形垂直邊界的像素,因此,保留的像素按照各四邊形在原始圖像中的位置進(jìn)行像素排序構(gòu)成垂直坍塌圖像Hrallaps-
為了更好地組織塌陷圖像,通過構(gòu)建一個(gè)完整的二叉樹并將二叉樹保存在內(nèi)存中。樹中節(jié)點(diǎn)包含坍塌圖像的基本信息如尺寸、圖像格式、在磁盤上的位置等。一個(gè)節(jié)點(diǎn)存儲(chǔ)的孩子的垂直坍塌圖像和水平的坍塌圖像。對(duì)于大型的圖像,需要遞歸運(yùn)用坍塌操作,樹的根表示原始圖像,與其他節(jié)點(diǎn)代表他們的父母在水平坍塌圖像或垂直坍塌圖像。
(2)針對(duì)水平坍塌圖像和垂直坍塌圖像分別構(gòu)建泊松方程
圖像梯度171和最終想要得到的梯度δ被表達(dá)為下面的相鄰像素的積分形式
權(quán)利要求
1.一種基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,包括(1)通過四邊形坍塌將全分辨率圖像生成低分辨率的坍塌圖像將待融合的原始圖像劃分成若干四邊形,提取各四邊形水平邊界的像素構(gòu)成水平坍塌圖像,提取各四邊形垂直邊界的像素構(gòu)成垂直坍塌圖像;(2)針對(duì)水平坍塌圖像和垂直坍塌圖像分別構(gòu)建紐曼條件泊松方程分別從坍塌圖像的R/G/B三個(gè)通道構(gòu)建紐曼條件泊松方程,令坍塌圖像中的每個(gè)像素對(duì)應(yīng)的拉普拉斯算子為零,即組成所述紐曼條件泊松方程;計(jì)算角點(diǎn)像素的拉普拉斯算子時(shí),定義當(dāng)前像素的權(quán)重為2,其他像素的權(quán)重為-1 ;計(jì)算邊界像素的拉普拉斯算子時(shí),定義當(dāng)前像素的權(quán)重為3,其他像素的權(quán)重為-1 ;(3)求解每一個(gè)四邊形內(nèi)部的像素;通過SM算法求解水平坍塌圖像和垂直坍塌圖像的紐曼條件泊松方程,得出每一個(gè)四邊形的邊界像素值,再根據(jù)每一個(gè)四邊形的邊界像素值計(jì)算得出每一個(gè)四邊形的內(nèi)部像素值,最終將所有邊界像素值和內(nèi)部像素值融合成無縫圖像,即完成原始圖像的融合。
2.如權(quán)利要求1所述的基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,步驟(I)中,各四邊形水平邊界的像素構(gòu)成水平坍塌圖像時(shí),按照各四邊形在原始圖像中的位置進(jìn)行像素排序。
3.如權(quán)利要求1所述的基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,步驟(I)中,各四邊形垂直邊界的像素構(gòu)成垂直坍塌圖像時(shí),按照各四邊形在原始圖像中的位置進(jìn)行像素排序。
4.如權(quán)利要求1所述的基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,步驟(3)中,根據(jù)每一個(gè)四邊形的邊界像素值,通過雙線性插值計(jì)算得出內(nèi)部像素值。
5.如權(quán)利要求1所述的基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,步驟(3)中,根據(jù)每一個(gè)四邊形的邊界像素值,通過重新構(gòu)建泊松方程,求解以后得出內(nèi)部像素值。
6.如權(quán)利要求1所述的基于四邊形包坍塌的超大圖像快速融合算法,其特征在于,每個(gè)四邊形分別對(duì)應(yīng)一個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包相關(guān)的運(yùn)算獨(dú)立地在一個(gè)GPU線程完成。
全文摘要
本發(fā)明公開了一種基于四邊形包坍塌的超大圖像快速融合算法,包括通過四邊形坍塌將全分辨率圖像生成低分辨率的坍塌圖像;針對(duì)水平坍塌圖像和垂直坍塌圖像分別構(gòu)建紐曼條件泊松方程;求解每一個(gè)四邊形內(nèi)部的像素。本發(fā)明基于四邊形包坍塌的超大圖像快速融合算法將超大圖像融合問題由在全分辨率圖像上解泊松方程轉(zhuǎn)變?yōu)樵谳^低分辨率圖像上解泊松方程,大大地減少了時(shí)間和內(nèi)存的消耗,同時(shí)算法容易實(shí)施,另外,本發(fā)明算法采用的數(shù)據(jù)結(jié)構(gòu)是均勻一致的,每個(gè)包都可以獨(dú)立地在一個(gè)GPU線程完成,能夠很容易地和GPU的多線程內(nèi)存數(shù)據(jù)結(jié)構(gòu)很好地映射到一起,充分利用了GPU的計(jì)算能力。
文檔編號(hào)G06T5/50GK103065294SQ20131002319
公開日2013年4月24日 申請(qǐng)日期2013年1月21日 優(yōu)先權(quán)日2013年1月21日
發(fā)明者趙磊, 李偉, 陸勝, 任艷姣, 李亞珍, 張勤飛 申請(qǐng)人:浙江大學(xué)