本發(fā)明實(shí)施例涉及圖像處理技術(shù)領(lǐng)域,特別涉及一種圖像拼接方法及裝置。
背景技術(shù):
圖像拼接技術(shù)廣泛應(yīng)用于全景拍攝、空間探測、遙感圖像處理、醫(yī)學(xué)圖像分析等領(lǐng)域。圖像拼接技術(shù)是指將兩張以上的具有部分重疊的圖像進(jìn)行無縫拼接,從而得到大畫幅或?qū)捯暯堑膱D像的技術(shù)。
相關(guān)技術(shù)中提供了一種圖像處理方法,該方法包括:終端確定兩張圖像之間的重疊區(qū)域;從當(dāng)前圖像的重疊區(qū)域中提取特征點(diǎn);根據(jù)該特征點(diǎn)計(jì)算用于采集當(dāng)前圖像的第一相機(jī)的位姿參數(shù);根據(jù)該位姿參數(shù)計(jì)算當(dāng)前圖像投影至投影畫布上的變換矩陣;通過該變換矩陣將該當(dāng)前圖像投影至投影畫布;同理,對相鄰圖像也做上述處理,得到由兩張圖像拼接得到的拼接圖像。其中,位姿參數(shù)包括攝像頭采集圖像時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種,當(dāng)前圖像是兩張圖像中的一張圖像,相鄰圖像為兩張圖像中的另一張圖像。
當(dāng)圖像中有位于不同深度面的對象時(shí),終端提取的特征點(diǎn)在重疊區(qū)域中的分布可能不均勻,比如:采集的特征點(diǎn)集中在重疊區(qū)域中的某個(gè)局部重疊區(qū)域中。此時(shí),根據(jù)該特征點(diǎn)計(jì)算出的位姿參數(shù)僅指示攝像頭拍攝該局部重疊區(qū)域時(shí)的旋轉(zhuǎn)角度和/或空間位置,并不適用于重疊區(qū)域中除該局部重疊區(qū)域之外的其它區(qū)域。此時(shí),根據(jù)該位姿參數(shù)計(jì)算出的變換矩陣,無法使得至少兩張圖像中的其它重疊區(qū)域在投影到投影畫布上時(shí)達(dá)到良好地重合,得到的拼接圖像的效果不佳。其中,深度面是指對象在實(shí)際場景中所在的平面,深度面的深度是指該深度面與攝像頭之間的距離。
技術(shù)實(shí)現(xiàn)要素:
為了解決了終端在僅根據(jù)主位姿參數(shù)投影圖像得到初始拼接圖像時(shí),由于該主位姿參數(shù)可能不適用于整張圖像,導(dǎo)致終端得到初始拼接圖像的重疊區(qū)域無法達(dá)到良好的重合,圖像拼接效果不佳的問題,本發(fā)明實(shí)施例提供了一種圖像拼接方法及裝置。所述技術(shù)方案如下:
第一方面,提供了一種圖像拼接方法,所述方法包括:
根據(jù)當(dāng)前圖像中的第一重疊區(qū)域確定所述當(dāng)前圖像的主位姿參數(shù),所述主位姿參數(shù)包括攝像頭在采集所述當(dāng)前圖像時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種,所述第一重疊區(qū)域是指所述當(dāng)前圖像的圖像內(nèi)容與相鄰圖像的圖像內(nèi)容一致的區(qū)域;
根據(jù)所述主位姿參數(shù)將所述當(dāng)前圖像投影至投影畫布,得到初始拼接圖像,所述初始拼接圖像由所述當(dāng)前圖像和所述相鄰圖像拼接而成;
在所述初始拼接圖像的第二重疊區(qū)域中選擇局部重疊區(qū)域,所述第二重疊區(qū)域是對所述當(dāng)前圖像的所述第一重疊區(qū)域和所述相鄰圖像的所述第一重疊區(qū)域進(jìn)行融合得到的,所述局部重疊區(qū)域中的各個(gè)對象的深度面的深度相同,所述深度面是指所述對象在實(shí)際場景中所在的平面,所述深度面的深度是指所述深度面與攝像頭之間的距離;
計(jì)算所述當(dāng)前圖像中與所述局部重疊區(qū)域?qū)?yīng)的局部圖像區(qū)域的局部位姿參數(shù),所述局部位姿參數(shù)用于指示所述攝像頭在采集所述當(dāng)前圖像的所述局部圖像區(qū)域時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種;
根據(jù)所述主位姿參數(shù)和所述局部位姿參數(shù),將所述當(dāng)前圖像重新投影至所述投影畫布,得到目標(biāo)拼接圖像。
第二方面,提供了一種圖像拼接裝置,所述裝置包括:
確定模塊,用于根據(jù)當(dāng)前圖像中的第一重疊區(qū)域確定所述當(dāng)前圖像的主位姿參數(shù),所述主位姿參數(shù)包括攝像頭在采集所述當(dāng)前圖像時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種,所述第一重疊區(qū)域是指所述當(dāng)前圖像的圖像內(nèi)容與相鄰圖像的圖像內(nèi)容一致的區(qū)域;
第一投影模塊,用于根據(jù)所述確定模塊得到的所述主位姿參數(shù)將所述當(dāng)前圖像投影至投影畫布,得到初始拼接圖像,所述初始拼接圖像由所述當(dāng)前圖像和所述相鄰圖像拼接而成;
選擇模塊,用于在所述第一投影模塊得到的所述初始拼接圖像的第二重疊區(qū)域中選擇局部重疊區(qū)域,所述第二重疊區(qū)域是對所述當(dāng)前圖像的所述第一重疊區(qū)域和所述相鄰圖像的所述第一重疊區(qū)域進(jìn)行融合得到的,所述局部重疊區(qū)域中的各個(gè)對象的深度面的深度相同,所述深度面是指所述對象在實(shí)際場景中所在的平面,所述深度面的深度是指所述深度面與攝像頭之間的距離;
計(jì)算模塊,用于計(jì)算所述當(dāng)前圖像中與所述選擇模塊選擇出的所述局部重疊區(qū)域?qū)?yīng)的局部圖像區(qū)域的局部位姿參數(shù),所述局部位姿參數(shù)用于指示所述攝像頭在采集所述當(dāng)前圖像的所述局部圖像區(qū)域時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種;
第二投影模塊,用于根據(jù)所述主位姿參數(shù)和所述計(jì)算模塊得到的所述局部位姿參數(shù),將所述當(dāng)前圖像重新投影至所述投影畫布,得到目標(biāo)拼接圖像。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果包括:通過在根據(jù)主位姿參數(shù)投影得到的初始拼接圖像中,選擇局部重疊區(qū)域;計(jì)算當(dāng)前圖像中與該局部重疊區(qū)域?qū)?yīng)的局部圖像區(qū)域的局部位姿參數(shù),根據(jù)該局部位姿參數(shù)和主位姿參數(shù)將當(dāng)前圖像重新投影至投影畫布,得到目標(biāo)拼接圖像;解決了終端在僅根據(jù)主位姿參數(shù)投影當(dāng)前圖像得到初始拼接圖像時(shí),由于該主位姿參數(shù)可能不適用于整張當(dāng)前圖像,導(dǎo)致的終端得到初始拼接圖像的重疊區(qū)域無法達(dá)到良好的重合,圖像拼接效果不佳的問題;由于終端根據(jù)各個(gè)局部圖像區(qū)域的局部位姿參數(shù),將該局部圖像區(qū)域重新投影至投影畫布,當(dāng)該局部圖像區(qū)域較多時(shí),終端得到的目標(biāo)拼接圖像中與各個(gè)局部圖像區(qū)域?qū)?yīng)的區(qū)域都可以達(dá)到良好的重合,提高了圖像拼接的效果。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個(gè)實(shí)施例提供的深度面的示意圖;
圖2是本發(fā)明一個(gè)實(shí)施例提供的重疊區(qū)域的示意圖;
圖3是本發(fā)明一個(gè)實(shí)施例提供的圖像拼接系統(tǒng)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一個(gè)實(shí)施例提供的提取特征點(diǎn)的示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提供的圖像拼接方法的流程圖;
圖6是本發(fā)明一個(gè)實(shí)施例提供的初始拼接圖像的示意圖;
圖7是本發(fā)明一個(gè)實(shí)施例提供的局部重疊區(qū)域的示意圖;
圖8是本發(fā)明一個(gè)實(shí)施例提供的獲取目標(biāo)拼接圖像的方法的流程圖;
圖9是本發(fā)明一個(gè)實(shí)施例提供的存在斷裂的拼接圖像的示意圖;
圖10是本發(fā)明一個(gè)實(shí)施例提供的位姿參數(shù)的垂直平滑過渡的示意圖;
圖11是本發(fā)明一個(gè)實(shí)施例提供的位姿參數(shù)的水平平滑過渡的示意圖;
圖12是本發(fā)明一個(gè)實(shí)施例提供的圖像拼接裝置的框圖;
圖13是本發(fā)明一個(gè)實(shí)施例提供的終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
首先對本文涉及的若干個(gè)名詞進(jìn)行介紹。
深度面:是指圖像中的對象在實(shí)際場景中所在的平面。比如:圖1所示的圖像中,人物的頭部11所在的平面為深度面11’;電腦的背部12所在的平面為深度面12’。通常,在一張圖像中,不同對象的深度面的深度也有所不同,其中,深度面的深度是指深度面與攝像頭之間的距離。比如:圖1所示的圖像中,深度面11’的深度與深度面12’的深度不同,深度面11’的深度大于深度面12’的深度。
位姿參數(shù):是指攝像頭在采集圖像時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種。比如:在采集圖1所示的圖像時(shí),攝像頭在電腦桌旁邊,攝像頭在垂直方向上向下旋轉(zhuǎn)30度,水平方向上沒有旋轉(zhuǎn)??蛇x地,攝像頭的所處位置也可以通過不同攝像頭之間平移的距離來間接表示,比如:當(dāng)終端通過多個(gè)攝像頭獲取圖像時(shí),終端首先根據(jù)多個(gè)攝像頭中的一個(gè)攝像頭拍攝的圖片估算出該攝像頭的空間參考坐標(biāo),該空間參考坐標(biāo)用于指示該攝像頭的所處位置;然后,終端根據(jù)其它攝像頭拍攝的圖片與該攝像頭拍攝的圖片之間的關(guān)系,估算出其它攝像頭與該攝像頭之間的距離,從而得到其它攝像頭的空間位置坐標(biāo),該空間位置坐標(biāo)用于指示其它攝像頭的所處位置,本實(shí)施例對位姿參數(shù)的表征方式不作限定。
投影畫布:在對至少兩張圖像進(jìn)行圖像拼接時(shí),用于呈現(xiàn)拼接圖像的畫布,該畫布可以為至少兩張圖像中的一張圖像;或者,也可以為除該至少兩張圖像之外的其它平面;或者,還可以為除該至少兩張圖像之外的其它立體面,比如:柱面、球面等。本文中,以投影畫布是除該至少兩張圖像之外的其它平面來舉例說明,但對投影畫布的形式不作限定。其中,拼接圖像是指由至少兩張圖像拼接而成的圖像,比如:全景圖像。
重疊區(qū)域:是指當(dāng)前圖像的圖像內(nèi)容與相鄰圖像的圖像內(nèi)容一致的區(qū)域。比如:攝像頭1采集到的圖像為圖2中(a)所示的當(dāng)前圖像,攝像頭2采集到的圖像為圖2中(b)所示的相鄰圖像,那么,當(dāng)前圖像中的重疊區(qū)域21如(a)所示的虛線框中的區(qū)域,相鄰圖像中的重疊區(qū)域22如(b)所示的虛線框中的區(qū)域。
請參考圖3,其示出了本發(fā)明一個(gè)實(shí)施例提供的圖像拼接系統(tǒng)的結(jié)構(gòu)示意圖。該圖像拼接系統(tǒng)包括:圖像采集裝置310和終端320。
圖像采集裝置310包括:攝像機(jī)、照相機(jī)、手機(jī)、平板電腦、pc(personalcomputer,個(gè)人計(jì)算機(jī))等具有攝像頭的電子設(shè)備。
圖像采集裝置310用于采集圖像,該圖像可以為視頻圖像(也即視頻圖像中的某一幀圖像),也可以為照片,本實(shí)施例對此不作限定。
可選地,在本實(shí)施例中,可以通過一臺(tái)圖像采集裝置310采集至少兩張圖像;或者,也可以由多臺(tái)圖像采集裝置310采集至少兩張圖像,其中,每臺(tái)圖像采集裝置310采集一張圖像,本實(shí)施例對此不作限定。
當(dāng)由一臺(tái)圖像采集裝置310采集至少兩張圖像時(shí),該圖像采集裝置310以不同的位姿參數(shù)每隔預(yù)定時(shí)長采集一張圖像,且相鄰的兩個(gè)采集時(shí)刻采集到的兩張圖像中,具有圖像內(nèi)容相同的重疊區(qū)域。
當(dāng)由多臺(tái)圖像采集裝置310采集至少兩張圖像時(shí),相鄰兩臺(tái)圖像采集裝置310采集到的兩張圖像中,具有圖像內(nèi)容相同的重疊區(qū)域。此時(shí),每臺(tái)圖像采集裝置310采集圖像時(shí)的位姿參數(shù)可以保持不變,也可以實(shí)時(shí)改變,本實(shí)施例對此不作限定。本實(shí)施例中,以由多臺(tái)圖像采集裝置310采集至少兩張圖像為例進(jìn)行說明。
比如:在vr(virtualreality,虛擬實(shí)境)拍攝場景中,通過4臺(tái)攝像機(jī)對實(shí)體環(huán)境進(jìn)行360°的圖像采集,其中,攝像機(jī)311采集0~100°的實(shí)體環(huán)境的圖像、攝像機(jī)312采集90°~190°的實(shí)體環(huán)境的圖像、攝像機(jī)313采集180°~280°的實(shí)體環(huán)境的圖像、攝像機(jī)314采集270°~10°的實(shí)體環(huán)境的圖像。這樣,相鄰的兩臺(tái)攝像機(jī)采集到的圖像會(huì)有10°的重疊區(qū)域315。
圖像采集裝置310通過無線網(wǎng)絡(luò)方式或者有線網(wǎng)絡(luò)方式與終端320建立通信連接。
終端320包括手機(jī)、平板電腦、電子書閱讀器、mp3(movingpictureexpertsgroupaudiolayeriii,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等,本實(shí)施例對此不作限定。
可選地,終端320的類型與圖像采集裝置310的類型可以相同,比如:二者均為手機(jī);或者,終端320的類型與圖像采集裝置310的類型也可以不同,比如:圖像采集裝置310為攝像機(jī),終端320為pc,本實(shí)施例對此不作限定。
終端320通過通信連接接收圖像采集裝置310發(fā)送的至少兩張圖像,并對該至少兩張圖像中的相鄰圖像進(jìn)行拼接,得到拼接圖像。
終端320在對相鄰圖像進(jìn)行拼接時(shí),可以是將同一時(shí)刻采集的兩張相鄰圖像進(jìn)行拼接,也可以是對不同時(shí)刻采集的兩張相鄰圖像進(jìn)行拼接,本實(shí)施例對此不作限定。
需要補(bǔ)充說明的是,本實(shí)施例僅以終端320的數(shù)量為一個(gè)為例進(jìn)行說明,在實(shí)際實(shí)現(xiàn)時(shí),終端320的數(shù)量可以為多個(gè),本實(shí)施例對此不作限定。
可選地,上述的無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò)使用標(biāo)準(zhǔn)通信技術(shù)和/或協(xié)議。網(wǎng)絡(luò)通常為因特網(wǎng)、但也可以是任何網(wǎng)絡(luò),包括但不限于局域網(wǎng)(localareanetwork,lan)、城域網(wǎng)(metropolitanareanetwork,man)、廣域網(wǎng)(wideareanetwork,wan)、移動(dòng)、有線或者無線網(wǎng)絡(luò)、專用網(wǎng)絡(luò)或者虛擬專用網(wǎng)絡(luò)的任何組合)。在一些實(shí)施例中,使用包括超文本標(biāo)記語言(hypertextmark-uplanguage,html)、可擴(kuò)展標(biāo)記語言(extensiblemarkuplanguage,xml)等的技術(shù)和/或格式來代表通過網(wǎng)絡(luò)交換的數(shù)據(jù)。此外還可以使用諸如安全套接字層(securesocketlayer,ssl)、傳輸層安全(trassportlayersecurity,tls)、虛擬專用網(wǎng)絡(luò)(virtualprivatenetwork,vpn)、網(wǎng)際協(xié)議安全(internetprotocolsecurity,ipsec)等常規(guī)加密技術(shù)來加密所有或者一些鏈路。在另一些實(shí)施例中,還可以使用定制和/或?qū)S脭?shù)據(jù)通信技術(shù)取代或者補(bǔ)充上述數(shù)據(jù)通信技術(shù)。
相關(guān)技術(shù)中,終端在獲取到攝像機(jī)發(fā)送的至少兩張圖像后,首先提取該至少兩張圖像中的特征點(diǎn),然后,根據(jù)該特征點(diǎn)來計(jì)算攝像頭拍攝圖像時(shí)的位姿參數(shù)。若對于包括多種深度的深度面的圖像來說,終端提取的特征點(diǎn)集中在圖像中的某個(gè)局部區(qū)域,這樣,根據(jù)該特征點(diǎn)計(jì)算出的位姿參數(shù)并不適用于整張圖像,計(jì)算出的位姿參數(shù)不夠準(zhǔn)確,從而導(dǎo)致根據(jù)該位姿參數(shù)計(jì)算出的變換矩陣不夠準(zhǔn)確,得到的拼接圖像的拼接效果不佳?;谠摷夹g(shù)問題,本文提供了如下實(shí)施例。
請參考圖4,終端從圖像41和圖像42中的重疊區(qū)域43中提取特征點(diǎn),若終端提取出的特征點(diǎn)44主要分布在局部區(qū)域45中,此時(shí),終端計(jì)算出的位姿參數(shù)相當(dāng)于該局部區(qū)域45對應(yīng)的位姿參數(shù),對于重疊區(qū)域43中除局部區(qū)域45之外的區(qū)域并不一定適用該位姿參數(shù)。
可選地,下文中以各個(gè)實(shí)施例的執(zhí)行主體為終端320為例進(jìn)行說明。
請參考圖5,其示出了本發(fā)明一個(gè)實(shí)施例提供的圖像拼接方法的流程圖。該方法用于圖3所示的圖像拼接系統(tǒng)中,該方法可以包括以下幾個(gè)步驟:
步驟501,根據(jù)當(dāng)前圖像中的第一重疊區(qū)域確定當(dāng)前圖像的主位姿參數(shù)。
第一重疊區(qū)域是指當(dāng)前圖像的圖像內(nèi)容與相鄰圖像的圖像內(nèi)容一致的區(qū)域,即,第一重疊區(qū)域中的圖像內(nèi)容既位于當(dāng)前圖像中,也位于相鄰圖像中。比如:圖2(a)所示的當(dāng)前圖像中的虛線框21中的區(qū)域,圖2(b)所示的相鄰圖像中的虛線框22中的區(qū)域。
可選地,當(dāng)前圖像是指終端獲取到的n張圖像中的一張圖像,相鄰圖像是指剩余的n-1張圖像中的一張圖像,該相鄰圖像的圖像內(nèi)容對應(yīng)的實(shí)際場景與當(dāng)前圖像的圖像內(nèi)容對應(yīng)的實(shí)際場景相鄰,n為大于1的整數(shù)。可選地,相鄰圖像的數(shù)量也可以為多張,本實(shí)施例對此不作限定。
可選地,本實(shí)施例中,以終端正在處理的圖像稱為當(dāng)前圖像,將與當(dāng)前圖像相鄰的圖像稱為相鄰圖像,在實(shí)際實(shí)現(xiàn)時(shí),當(dāng)前圖像和相鄰圖像可以沒有命名上的劃分,或者,當(dāng)前圖像和相鄰圖像也可以通過其它命名方式命名,本實(shí)施例對此不作限定。
當(dāng)前圖像的主位姿參數(shù)包括攝像頭在采集當(dāng)前圖像時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種。
終端根據(jù)當(dāng)前圖像中的第一重疊區(qū)域確定當(dāng)前圖像的主位姿參數(shù),包括:在當(dāng)前圖像的第一重疊區(qū)域中選取特征點(diǎn);根據(jù)該特征點(diǎn)通過預(yù)設(shè)算法計(jì)算主位姿參數(shù)。本實(shí)施例不對預(yù)設(shè)算法作限定,比如:ransac(randomsampleconsensus,隨機(jī)抽樣一致)算法。
需要補(bǔ)充說明的是,當(dāng)相鄰圖像被終端處理時(shí),終端在相鄰圖像中選取的特征點(diǎn)與在當(dāng)前圖像中選取的特征點(diǎn)一一對應(yīng),終端會(huì)根據(jù)相鄰圖像中的第一重疊區(qū)域計(jì)算出該相鄰圖像的主位姿參數(shù)。
步驟502,根據(jù)主位姿參數(shù)將當(dāng)前圖像投影至投影畫布,得到初始拼接圖像。
終端根據(jù)當(dāng)前圖像的主位姿參數(shù)計(jì)算當(dāng)前圖像投影至投影畫布上時(shí)使用的變換矩陣;根據(jù)相鄰圖像的主位姿參數(shù)計(jì)算相鄰圖像投影至投影畫布上時(shí)使用的變換矩陣;根據(jù)當(dāng)前圖像對應(yīng)的變換矩陣將當(dāng)前圖像投影至投影畫布,根據(jù)相鄰圖像對應(yīng)的變換矩陣將相鄰圖像投影至投影畫布,得到初始拼接圖像。根據(jù)該投影過程可知,初始拼接圖像由當(dāng)前圖像和相鄰圖像拼接而成。
但需要說明的是,若需要將三張或三張以上的圖像進(jìn)行拼接,則執(zhí)行類似上述處理過程即可。本實(shí)施例中為了簡化描述,僅以兩張圖像來舉例說明。
步驟503,在初始拼接圖像的第二重疊區(qū)域中選擇局部重疊區(qū)域。
第二重疊區(qū)域是對當(dāng)前圖像的第一重疊區(qū)域和相鄰圖像的第一重疊區(qū)域進(jìn)行融合得到的。第二重疊區(qū)域中的圖像內(nèi)容位于初始拼接圖像中。
若終端計(jì)算出的當(dāng)前圖像的主位姿參數(shù)和相鄰圖像的主位姿參數(shù)比較準(zhǔn)確且適用于整張圖像,則當(dāng)前圖像與相鄰圖像拼接的效果較好。此時(shí),對于當(dāng)前圖像和相鄰圖像中的第一重疊區(qū)域中的同一圖像內(nèi)容,初始拼接圖像的第二重疊區(qū)域中只會(huì)包括一份該圖像內(nèi)容。終端可以繼續(xù)執(zhí)行下述步驟,也可以結(jié)束流程,本實(shí)施例對此不作限定。
若終端計(jì)算出的當(dāng)前圖像的主位姿參數(shù)和相鄰圖像的主位姿參數(shù)不適用于整張圖像,則當(dāng)前圖像與相鄰圖像拼接的效果較差。此時(shí),對于當(dāng)前圖像和相鄰圖像中的第一重疊區(qū)域中的同一圖像內(nèi)容,初始拼接圖像的第二重疊區(qū)域中包括至少兩份該圖像內(nèi)容,即,第二重疊區(qū)域會(huì)出現(xiàn)重影、鬼影、虛邊、連續(xù)線條錯(cuò)位等瑕疵。本實(shí)施例通過在第二重疊區(qū)域中選擇局部重疊區(qū)域,該局部重疊區(qū)域中的各個(gè)對象的深度面的深度相同,使得終端可以根據(jù)局部重疊區(qū)域?qū)?yīng)的局部位姿參數(shù)計(jì)算出各個(gè)局部重疊區(qū)域?qū)?yīng)的變換矩陣,根據(jù)各個(gè)局部重疊區(qū)域?qū)?yīng)的變換矩陣再次投影當(dāng)前圖像和相鄰圖像,提高了各個(gè)局部重疊區(qū)域的拼接效果,從而提高了整個(gè)圖像的拼接效果。
通常情況下,當(dāng)前圖像中位于不同深度的深度面的的對象,其局部重疊區(qū)域?qū)?yīng)的局部位姿參數(shù)不同。根據(jù)這一特性,在本實(shí)施例中,終端根據(jù)各個(gè)對象的深度面的深度是否相同來選擇局部重疊區(qū)域,終端選擇出的同一局部重疊區(qū)域中,各個(gè)對象的深度面的深度相同。不同的局部重疊區(qū)域之間沿著初始拼接圖像的深度面的深度漸變的方向排列。比如:圖像的深度面的深度沿垂直方向漸變,終端選擇的局部重疊區(qū)域沿初始拼接圖像的垂直方向排列,這樣,選擇出的局部重疊區(qū)域能夠反映不同的深度面的深度變化。又比如:圖像的深度面的深度沿水平方向漸變時(shí),終端選擇的局部重疊區(qū)域沿初始拼接圖像的水平方向排列,這樣,選擇出的局部重疊區(qū)域能夠反映不同的深度面的深度變化。下文中以圖像的深度面的深度沿垂直方向漸變?yōu)槔M(jìn)行說明。
可選地,終端選取的局部重疊區(qū)域的數(shù)量為至少一個(gè),本實(shí)施例對此不作限定。另外,本實(shí)施例不對終端選取的局部重疊區(qū)域的形狀作限定,示意性地,局部重疊區(qū)域?yàn)榫匦巍?/p>
步驟504,計(jì)算當(dāng)前圖像中與局部重疊區(qū)域?qū)?yīng)的局部圖像區(qū)域的局部位姿參數(shù)。
局部圖像區(qū)域是根據(jù)當(dāng)前圖像中與局部重疊區(qū)域中的局部特征點(diǎn)相匹配的特征點(diǎn)確定的。即,終端在確定局部圖像區(qū)域時(shí),先在初始拼接圖像的局部重疊區(qū)域中選擇局部特征點(diǎn);在當(dāng)前圖像中查詢與該局部特征點(diǎn)相匹配的特征點(diǎn),根據(jù)該特征點(diǎn)確定局部圖像區(qū)域。
局部位姿參數(shù)用于指示攝像頭在采集當(dāng)前圖像的局部圖像區(qū)域時(shí)的旋轉(zhuǎn)角度和所處位置中的至少一種。
終端計(jì)算當(dāng)前圖像中與局部重疊區(qū)域相對應(yīng)的局部圖像區(qū)域的局部位姿參數(shù),包括:對于局部重疊區(qū)域中的每個(gè)局部重疊區(qū)域,在圖像中確定與局部重疊區(qū)域相對應(yīng)的局部圖像區(qū)域;從局部圖像區(qū)域中提取特征點(diǎn);根據(jù)特征點(diǎn)通過預(yù)設(shè)估計(jì)算法計(jì)算局部位姿參數(shù)。
其中,終端計(jì)算局部位姿參數(shù)時(shí)使用的預(yù)設(shè)估計(jì)算法與計(jì)算主位姿參數(shù)時(shí)使用的預(yù)設(shè)算法可以相同,也可以不同,本實(shí)施對此不作限定。
步驟505,根據(jù)主位姿參數(shù)和局部位姿參數(shù),將當(dāng)前圖像重新投影至投影畫布,得到目標(biāo)拼接圖像。
由于終端根據(jù)局部位姿參數(shù)可以計(jì)算出各個(gè)局部圖像區(qū)域的變換矩陣,在根據(jù)該變換矩陣將該局部圖像區(qū)域重新投影至投影畫布時(shí),當(dāng)前圖像和相鄰圖像中的局部圖像區(qū)域可以良好地重合,隨著局部圖像區(qū)域的數(shù)量的增多,當(dāng)前圖像和相鄰圖像的整個(gè)圖像區(qū)域都可以達(dá)到良好地重合,提高了終端得到的目標(biāo)拼接圖像的拼接效果。
綜上所述,本實(shí)施例提供的圖像拼接方法,通過在根據(jù)主位姿參數(shù)投影得到的初始拼接圖像中,選擇局部重疊區(qū)域;計(jì)算當(dāng)前圖像中與該局部重疊區(qū)域?qū)?yīng)的局部圖像區(qū)域的局部位姿參數(shù),根據(jù)該局部位姿參數(shù)和主位姿參數(shù)將當(dāng)前圖像重新投影至投影畫布,得到目標(biāo)拼接圖像;解決了終端在僅根據(jù)主位姿參數(shù)投影當(dāng)前圖像得到初始拼接圖像時(shí),由于該主位姿參數(shù)可能不適用于整張當(dāng)前圖像,導(dǎo)致的終端得到初始拼接圖像的重疊區(qū)域無法達(dá)到良好的重合,圖像拼接效果不佳的問題;由于終端根據(jù)各個(gè)局部圖像區(qū)域的局部位姿參數(shù),將該局部圖像區(qū)域重新投影至投影畫布,當(dāng)該局部圖像區(qū)域較多時(shí),終端得到的目標(biāo)拼接圖像中與各個(gè)局部圖像區(qū)域?qū)?yīng)的區(qū)域都可以達(dá)到良好的重合,提高了圖像拼接的效果。
另外,通過選擇沿初始拼接圖像的垂直方向排列的局部重疊區(qū)域,使得終端選擇出的局部重疊區(qū)域能夠滿足不同的深度面的變化,提高了終端選擇局部重疊區(qū)域的準(zhǔn)確性,從而間接提高了圖像拼接的效果。
可選地,為了更清楚地理解上述實(shí)施例步驟503中終端選取局部區(qū)域的方法,下面對終端選取局部區(qū)域的方法進(jìn)行詳細(xì)介紹。
終端選取局部重疊區(qū)域的方式包括但不限于以下幾種。
在第一種方式中,終端在第二重疊區(qū)域中選擇最大的錯(cuò)位值與最小的錯(cuò)位值之差小于或等于預(yù)設(shè)數(shù)值的區(qū)域,得到局部重疊區(qū)域。
錯(cuò)位值是指當(dāng)同一圖像內(nèi)容顯示在初始拼接圖像的不同位置上時(shí),該不同位置之間的距離。比如:終端得到的初始拼接圖像如圖6所示,根據(jù)圖6可知,第二重疊區(qū)域61中的圖像內(nèi)容62顯示在了初始拼接圖像的不同位置上,此時(shí),該不同位置之間的距離63為圖像內(nèi)容62的錯(cuò)位值。
由于對于深度面的深度相同的對象,該對象在初始拼接圖像中的錯(cuò)位情況通常相同,因此,終端通過選擇錯(cuò)位情況一致的局部重疊區(qū)域,也就間接得到了深度面的深度相同的局部重疊區(qū)域。為了終端能夠選擇出錯(cuò)位情況基本相同的局部重疊區(qū)域,預(yù)設(shè)數(shù)值的取值通常較小,趨近于0,比如:0.001,本實(shí)施例對此不作限定。
在第二種方式中,終端在第二重疊區(qū)域中選擇最大的錯(cuò)位值與最小的錯(cuò)位值之差小于或等于預(yù)設(shè)數(shù)值的區(qū)域;檢測該區(qū)域的區(qū)域面積是否大于預(yù)設(shè)面積;若區(qū)域的區(qū)域面積大于預(yù)設(shè)面積,則將區(qū)域分割為至少兩個(gè)小于或等于預(yù)設(shè)面積的分割區(qū)域,確定分割區(qū)域?yàn)榫植恐丿B區(qū)域。
在這種方式中,終端將錯(cuò)位情況一致、且面積較大的同一區(qū)域分割為至少兩個(gè)分割區(qū)域,這樣,可以在預(yù)設(shè)數(shù)值的取值較大的情況下,通過將區(qū)域進(jìn)行分割來提高終端確定局部重疊區(qū)域的準(zhǔn)確性。
可選地,終端在將區(qū)域分割為至少兩個(gè)小于等于預(yù)設(shè)面積的分割區(qū)域時(shí),可以將該區(qū)域分割為面積相同的兩個(gè)分割區(qū)域,也可以分割為面積不同的兩個(gè)分割區(qū)域,本實(shí)施例對此不作限定。另外,終端得到的分割區(qū)域之間可以沿垂直方向間隔預(yù)設(shè)個(gè)數(shù)的像素點(diǎn);或者,終端得到的分割區(qū)域之間也可以無縫連接,本實(shí)施例對此不作限定。
假設(shè)終端選擇出的面積大于預(yù)設(shè)面積的區(qū)域?yàn)閳D6中的區(qū)域64,終端將該區(qū)域64進(jìn)行分割后,得到的局部重疊區(qū)域?yàn)?5和66,該局部重疊區(qū)域65和66面積不同,且不連續(xù)。
在第三種方式中,確定第二重疊區(qū)域中的至少一種場景內(nèi)容;對于至少一種場景內(nèi)容中的每種場景內(nèi)容,在場景內(nèi)容中選擇最大錯(cuò)位值與最小錯(cuò)位值之差小于或等于預(yù)設(shè)數(shù)值的區(qū)域,將區(qū)域確定為局部重疊區(qū)域。
其中,同一種場景內(nèi)容用于指示位于同一空間位置中的場景。比如:位于房間上方的燈、天花板等為同一場景內(nèi)容;位于房間中間的桌子、椅子、人等為同一場景內(nèi)容;位于房間底部的地板、地毯等為同一場景內(nèi)容。
由于同一場景內(nèi)容的對象的深度面的深度通常差距不大,因此,通過先識(shí)別不同的場景,再在同一場景內(nèi)容中選取深度面的深度一致的局部重疊區(qū)域,使得終端無需在所有第二重疊區(qū)域中選擇局部重疊區(qū)域,節(jié)省了終端選取局部重疊區(qū)域時(shí)消耗的資源。
可選地,終端還可以采用第二種方式和第三種方式相結(jié)合的方式來選擇局部重疊區(qū)域,或者,采用其它方式來選擇局部重疊區(qū)域,本實(shí)施例對此不作限定。
可選地,本實(shí)施例中,可以根據(jù)上述三種實(shí)現(xiàn)方式,人工手動(dòng)選擇局部重疊區(qū)域,本實(shí)施例對此不作限定。
假設(shè)終端選擇出的局部重疊區(qū)域如圖7所示,局部重疊區(qū)域71為天空、局部重疊區(qū)域72為大樹、局部重疊區(qū)域73和74為道路。
可選地,為了更清楚地理解上述實(shí)施例步驟505中終端根據(jù)主位姿參數(shù)和局部位姿參數(shù),將當(dāng)前圖像重新投影至投影畫布,得到目標(biāo)拼接圖像的方法,下面對步驟505進(jìn)行詳細(xì)介紹。
請參考圖8,其示出了本發(fā)明一個(gè)實(shí)施例提供的獲取目標(biāo)拼接圖像的方法的流程圖。該方法用于圖3所示的圖像拼接系統(tǒng)中,該方法可以包括以下幾個(gè)步驟:
步驟801,根據(jù)局部位姿參數(shù),計(jì)算第一重疊區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù)。
若終端獲取到局部圖像區(qū)域的局部位姿參數(shù)后,將第一重疊區(qū)域中除該局部圖像區(qū)域之外的其它區(qū)域的位姿參數(shù)均賦值為主位姿參數(shù),或者,終端設(shè)置的其它位姿參數(shù),那么,終端最終獲取到的目標(biāo)拼接圖像在垂直方向上可能出現(xiàn)斷裂。為了避免上述問題,終端在獲取到局部位姿參數(shù)之后,需要確定其它區(qū)域的位姿參數(shù),實(shí)現(xiàn)位姿參數(shù)在垂直方向上的平滑過渡,這樣,避免了終端得到的目標(biāo)拼接圖像在垂直方向上存在斷裂的問題。
其中,斷裂是指由于不同的攝像頭之間的視差,導(dǎo)致的拼接圖像存在斷層的現(xiàn)象,視差是指從一定距離的兩個(gè)點(diǎn)上觀察同一對象產(chǎn)生的方向差異。比如:對于同一對象,若該對象在實(shí)際場景中連續(xù),在由不同的攝像頭拍攝該對象,并得到拼接圖像時(shí),在拼接圖像中該對象不再連續(xù)。請參考圖9所示存在斷裂的拼接圖像的示意圖,線條91在實(shí)際場景中為連續(xù)線條,而在圖9所示的拼接圖像中,在斷層線92的左側(cè)的線條與在斷層線92右側(cè)的線條之間不再連續(xù),即,該拼接圖像存在斷裂。圖9中的斷層線92僅是示意性地,在實(shí)際實(shí)現(xiàn)時(shí),拼接圖像中并不一定存在該斷層線92。
終端根據(jù)局部位姿參數(shù),計(jì)算第一重疊區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù),包括:設(shè)置穿過局部圖像區(qū)域的第一參數(shù)線;對于第一參數(shù)線上與局部圖像區(qū)域存在交集的第一像素點(diǎn),設(shè)置第一像素點(diǎn)的位姿參數(shù)為所屬的局部圖像區(qū)域的局部位姿參數(shù);對于第一參數(shù)線上與局部圖像區(qū)域不存在交集的第二像素點(diǎn),若第二像素點(diǎn)位于第一參數(shù)線的起始點(diǎn)與第一個(gè)局部圖像區(qū)域之間,則第二像素點(diǎn)的位姿參數(shù)為第一個(gè)局部圖像區(qū)域的局部位姿參數(shù);若第二像素點(diǎn)位于第i個(gè)局部圖像區(qū)域與第i+1個(gè)局部圖像區(qū)域之間,則根據(jù)第i個(gè)局部圖像區(qū)域的局部位姿參數(shù)和第i+1個(gè)局部圖像區(qū)域的局部位姿參數(shù),通過插值法計(jì)算得到第二像素點(diǎn)的位姿參數(shù);若第二像素點(diǎn)位于第一參數(shù)線的截止點(diǎn)與最后一個(gè)局部圖像區(qū)域之間,則第二像素點(diǎn)的位姿參數(shù)為最后一個(gè)局部圖像區(qū)域的局部位姿參數(shù);對于第一參數(shù)線上的每個(gè)像素點(diǎn),將像素點(diǎn)的位姿參數(shù)賦值給第一重疊區(qū)域中與像素點(diǎn)處于同一像素行的所有像素點(diǎn),得到第一重疊區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù),i為正整數(shù)。
當(dāng)圖像的深度面的深度沿垂直方向漸變時(shí),第一參數(shù)線與當(dāng)前圖像的垂直方向平行;當(dāng)圖像的深度面的深度沿水平方向漸變時(shí),第一參數(shù)線與當(dāng)前圖像的水平方向平行。
局部圖像區(qū)域的編號(hào)大小是根據(jù)第一參數(shù)線沿著由起始點(diǎn)至截止點(diǎn)的方向,由先到后依次經(jīng)過局部圖像區(qū)域的順序確定的。比如:第i個(gè)局部圖像區(qū)域是沿著起始點(diǎn)至截止點(diǎn)的方向的第i個(gè)局部圖像區(qū)域。
可選地,起始點(diǎn)和截止點(diǎn)分別位于第一參數(shù)線的兩端,本實(shí)施例不對起始點(diǎn)和截止點(diǎn)的位置作限定。示意性地,起始點(diǎn)為第一參數(shù)線上方的端點(diǎn),起始點(diǎn)為第一參數(shù)線下方的端點(diǎn)。
可選地,本實(shí)施例不對插值法的類型作限定,示意性地,該插值法為線性差值法。
請參考圖10,終端在確定出局部圖像區(qū)域101、102、103和104,以及,各個(gè)局部圖像區(qū)域的局部位姿參數(shù)后,設(shè)置了一條垂直的第一參數(shù)線105,該第一參數(shù)線105穿過了局部圖像區(qū)域101、102、103和104。
對于第一參數(shù)線105上與局部圖像區(qū)域101相交的像素點(diǎn)(圖中局部圖像區(qū)域101中線條加粗的部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域101的局部位姿參數(shù);對于第一參數(shù)線105上與局部圖像區(qū)域102相交的像素點(diǎn)(圖中局部圖像區(qū)域102中線條加粗的部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域102的局部位姿參數(shù);對于第一參數(shù)線105上與局部圖像區(qū)域103相交的像素點(diǎn)(圖中局部圖像區(qū)域103中線條加粗的部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域103的局部位姿參數(shù);對于第一參數(shù)線105上與局部圖像區(qū)域104相交的像素點(diǎn)(圖中局部圖像區(qū)域104中線條加粗的部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域104的局部位姿參數(shù)。
對于第一參數(shù)線105的起始點(diǎn)至局部圖像區(qū)域101之間的像素點(diǎn)(圖中位于局部圖像區(qū)域101上方的虛線部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域101的局部位姿參數(shù)。
對于第一參數(shù)線105的截止點(diǎn)至局部圖像區(qū)域104之間的像素點(diǎn)(圖中位于局部圖像區(qū)域104下方的虛線部分),這些像素點(diǎn)的位姿參數(shù)為局部圖像區(qū)域104的局部位姿參數(shù)。
對于第一參數(shù)線105上位于局部圖像區(qū)域101和102之間的像素點(diǎn)(圖中位于局部圖像區(qū)域101和局部圖像區(qū)域102之間的虛線部分),這些像素點(diǎn)的位姿參數(shù)根據(jù)線性插值法計(jì)算得到。即,像素點(diǎn)106處的局部位姿參數(shù)=(x/y)*局部圖像區(qū)域102的局部位姿參數(shù)+(y-x)/y*局部圖像區(qū)域101的局部位姿參數(shù)。其中,x為像素點(diǎn)106至局部圖像區(qū)域101的最小的像素點(diǎn)間隔值;y為局部圖像區(qū)域101和102之前的最小的像素點(diǎn)間隔值。
對于第一參數(shù)線105上位于局部圖像區(qū)域102和103之間的像素點(diǎn)(圖中位于局部圖像區(qū)域102和局部圖像區(qū)域103之間的虛線部分),這些像素點(diǎn)的位姿參數(shù)根據(jù)線性插值法計(jì)算得到。計(jì)算方式與上段描述相同,本實(shí)施例在此不作贅述。
對于第一參數(shù)線105上位于局部圖像區(qū)域103和104之間的像素點(diǎn)(圖中位于局部圖像區(qū)域103和局部圖像區(qū)域104之間的虛線部分),這些像素點(diǎn)的位姿參數(shù)根據(jù)線性插值法計(jì)算得到。計(jì)算方式與上段描述相同,本實(shí)施例在此不作贅述。
終端在得到第一參數(shù)線105上的各個(gè)像素點(diǎn)的位姿參數(shù)后,對于第一參數(shù)線105上的每個(gè)像素點(diǎn),將該像素點(diǎn)的位姿參數(shù)賦值給第一重疊區(qū)域107中與該像素點(diǎn)處于同一像素行的所有像素點(diǎn),即,第一重疊區(qū)域107中每行像素點(diǎn)的位姿參數(shù)相同,得到第一重疊區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù)。
步驟802,根據(jù)每個(gè)像素點(diǎn)的位姿參數(shù)生成第一重疊區(qū)域?qū)?yīng)的第一變換矩陣。
由于第一重疊區(qū)域的垂直方向上像素點(diǎn)的位姿參數(shù)實(shí)現(xiàn)了漸變,這樣,終端根據(jù)該位姿參數(shù)得到的第一變換矩陣將當(dāng)前圖像投影至投影畫布上時(shí),避免了目標(biāo)拼接圖像在垂直方向存在斷裂的問題。
步驟803,根據(jù)主位姿參數(shù)生成當(dāng)前圖像中除第一重疊區(qū)域之外的其它圖像區(qū)域的第二變換矩陣。
若終端僅根據(jù)主位姿參數(shù)生成其它圖像區(qū)域的第二變換矩陣,當(dāng)主位姿參數(shù)與第一重疊區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)差異較大時(shí),終端得到的目標(biāo)拼接圖像在水平方向上可能存在斷裂的問題。為了避免該問題,終端在得到第一重疊區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)之后,需要在第一重疊區(qū)之外確定一個(gè)過渡區(qū)域,通過確定過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù),實(shí)現(xiàn)位姿參數(shù)在水平方向上的平滑過渡,這樣,避免了終端得到的目標(biāo)拼接圖像在水平方向上存在斷裂的問題。
終端根據(jù)主位姿參數(shù)生成當(dāng)前圖像中除第一重疊區(qū)域之外的其它圖像區(qū)域的第二變換矩陣,包括:在當(dāng)前圖像的第一重疊區(qū)域之外設(shè)置第二參數(shù)線,第二參數(shù)線與第一參數(shù)線平行;將第二參數(shù)線上的每個(gè)第三像素點(diǎn)的位姿參數(shù)設(shè)置為主位姿參數(shù);確定第一重疊區(qū)域的邊緣線,邊緣線上的每個(gè)第四像素點(diǎn)的位姿參數(shù)是根據(jù)第一參數(shù)線上每個(gè)像素點(diǎn)的位姿參數(shù)確定的;對于位于第二參數(shù)線和邊緣線之間的像素點(diǎn),根據(jù)與該像素點(diǎn)處于同一像素行的第三像素點(diǎn)和第四像素點(diǎn)的位姿參數(shù),通過插值法計(jì)算像素點(diǎn)的位姿參數(shù),得到第二參數(shù)線和邊緣線之間的過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù);根據(jù)過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)和主位姿參數(shù)生成當(dāng)前圖像中除第一重疊區(qū)域之外的其它圖像區(qū)域的第二變換矩陣。
其中,根據(jù)過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)和主位姿參數(shù)生成當(dāng)前圖像中除第一重疊區(qū)域之外的其它圖像區(qū)域的第二變換矩陣是指:根據(jù)過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)生成過渡區(qū)域的第二變換矩陣;根據(jù)其它圖像區(qū)域中除過渡區(qū)域之外的區(qū)域的主位姿參數(shù)生成該區(qū)域的第二變換矩陣,得到其它圖像區(qū)域的第二變換矩陣。
本實(shí)施例不對第二參數(shù)線的位置作限定。比如:第二參數(shù)線位于當(dāng)前圖像的中間,將當(dāng)前圖像分成面積相同的左右兩個(gè)區(qū)域。
請參考圖11,終端在確定出第一重疊區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)之后,設(shè)置了一條垂直的第二參數(shù)線111,該第二參數(shù)線111上的各個(gè)第三像素點(diǎn)的位姿參數(shù)為主位姿參數(shù),終端確定出了第一重疊區(qū)域的邊緣線112,邊緣線112上的各個(gè)第四像素點(diǎn)的位姿參數(shù)是根據(jù)圖9所示的方式確定的。第二參數(shù)線111和邊緣線112之間的區(qū)域?yàn)檫^渡區(qū)域。
對于過渡區(qū)域中的像素點(diǎn)113,根據(jù)與該像素點(diǎn)113處于同一像素行的第三像素點(diǎn)114和第四像素點(diǎn)115的位姿參數(shù),通過插值法計(jì)算像素點(diǎn)113的位姿參數(shù)。即,像素點(diǎn)113的局部位姿參數(shù)=(m/n)*第三像素點(diǎn)115的局部位姿參數(shù)+(n-m)/n*第四像素點(diǎn)114的局部位姿參數(shù)。其中,m為像素點(diǎn)113至第三像素點(diǎn)114的像素點(diǎn)間隔值;n為第三像素點(diǎn)114和第四像素點(diǎn)115之前的像素點(diǎn)間隔值。過渡區(qū)域中其它的像素點(diǎn)也通過上述方法計(jì)算得到,由此,得到過渡區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù)。
終端根據(jù)過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)生成過渡區(qū)域的第二變換矩陣;根據(jù)其它圖像區(qū)域116中除過渡區(qū)域之外的區(qū)域117的主位姿參數(shù)生成該區(qū)域116的第二變換矩陣,得到其它圖像區(qū)域116的第二變換矩陣。
步驟804,根據(jù)第一變換矩陣和第二變換矩陣將當(dāng)前圖像投影至投影畫布,得到目標(biāo)拼接圖像。
終端根據(jù)第一重疊區(qū)域的第一變換矩陣和其它圖像區(qū)域的第二變換矩陣,逐個(gè)像素地將當(dāng)前圖像投影至投影畫布,同理,將相鄰圖像也投影至投影畫布,得到目標(biāo)拼接圖像。
由于終端不僅根據(jù)局部圖像區(qū)域的局部位姿參數(shù)來投影當(dāng)前圖像,還將第一重疊區(qū)域和過渡區(qū)域中的各個(gè)像素點(diǎn)的位姿參數(shù)進(jìn)行了過渡,這樣,終端得到的目標(biāo)拼接圖像不僅拼接效果良好,還不會(huì)在水平方向和垂直方向上存在斷裂問題。
可選地,當(dāng)終端得到的目標(biāo)拼接圖像未達(dá)到期望的拼接效果時(shí),可以從該目標(biāo)拼接圖像中再次選擇局部重疊區(qū)域,即重新執(zhí)行步驟503,本實(shí)施例對此不作限定。
綜上所述,本實(shí)施例提供的圖像拼接方法,通過在獲取到局部圖像區(qū)域的局部位姿參數(shù)后,確定其它區(qū)域的位姿參數(shù),從而實(shí)現(xiàn)位姿參數(shù)在垂直方向上的平滑過渡,避免了終端得到的目標(biāo)拼接圖像在垂直方向上存在斷裂的問題,提高了圖像拼接的效果。
另外,通過在第一重疊區(qū)之外確定一個(gè)過渡區(qū)域,確定該過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù),實(shí)現(xiàn)位姿參數(shù)在水平方向上的平滑過渡,這樣,避免了終端得到的目標(biāo)拼接圖像在水平方向上存在斷裂的問題,提高了圖像拼接的效果。
下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請參照本發(fā)明方法實(shí)施例。
請參考圖12,其示出了本發(fā)明一個(gè)實(shí)施例提供的圖像拼接裝置的框圖。該裝置具有執(zhí)行上述方法示例的功能,功能可以由硬件實(shí)現(xiàn),也可以由硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。該裝置可以包括:確定模塊1210、第一投影模塊1220、選擇模塊1230、計(jì)算模塊1240和第二投影模塊1250。
確定模塊1210,用于執(zhí)行上述步驟501;
第一投影模塊1220,用于執(zhí)行上述步驟502;
選擇模塊1230,用于執(zhí)行上述步驟503;
計(jì)算模塊1240,用于執(zhí)行上述步驟504;
第二投影模塊1250,用于執(zhí)行上述步驟505。
可選地,選擇模塊1230,還用于:在第二重疊區(qū)域中選擇最大的錯(cuò)位值與最小的錯(cuò)位值之差小于或等于預(yù)設(shè)數(shù)值的區(qū)域,得到局部重疊區(qū)域;其中,局部重疊區(qū)域沿著初始拼接圖像的垂直方向排列,錯(cuò)位值是指當(dāng)同一圖像內(nèi)容顯示在初始拼接圖像的不同位置上時(shí),不同位置之間的距離。
可選地,該裝置還包括:檢測模塊和分割模塊。
檢測模塊,用于檢測區(qū)域的區(qū)域面積是否大于預(yù)設(shè)面積;
分割模塊,用于當(dāng)區(qū)域的區(qū)域面積大于預(yù)設(shè)面積時(shí),將區(qū)域分割為至少兩個(gè)小于或等于預(yù)設(shè)面積的分割區(qū)域,確定分割區(qū)域?yàn)榫植恐丿B區(qū)域。
可選地,該裝置還包括:
場景確定模塊,用于確定第二重疊區(qū)域中的至少一種場景內(nèi)容,同一種場景內(nèi)容用于指示位于同一空間位置中的場景;
選擇模塊1230,還用于:對于至少一種場景內(nèi)容中的每種場景內(nèi)容,在場景內(nèi)容中選擇最大錯(cuò)位值與最小錯(cuò)位值之差小于或等于預(yù)設(shè)數(shù)值的區(qū)域,將區(qū)域確定為局部重疊區(qū)域。
可選地,第二投影模塊1250,包括:計(jì)算單元、第一生成單元、第二生成單元和投影單元。
計(jì)算單元,用于執(zhí)行上述步驟801;
第一生成單元,用于執(zhí)行上述步驟802;
第二生成單元,用于執(zhí)行上述步驟803;
投影單元,用于執(zhí)行上述步驟804。
可選地,計(jì)算單元,具體用于:設(shè)置穿過局部圖像區(qū)域的第一參數(shù)線,第一參數(shù)線與當(dāng)前圖像的垂直方向平行;
對于第一參數(shù)線上與局部圖像區(qū)域存在交集的第一像素點(diǎn),設(shè)置第一像素點(diǎn)的位姿參數(shù)為所屬的局部圖像區(qū)域的局部位姿參數(shù);
對于第一參數(shù)線上與局部圖像區(qū)域不存在交集的第二像素點(diǎn),若第二像素點(diǎn)位于第一參數(shù)線的起始點(diǎn)與第一個(gè)局部圖像區(qū)域之間,則第二像素點(diǎn)的位姿參數(shù)為第一個(gè)局部圖像區(qū)域的局部位姿參數(shù);若第二像素點(diǎn)位于第i個(gè)局部圖像區(qū)域與第i+1個(gè)局部圖像區(qū)域之間,則根據(jù)第i個(gè)局部圖像區(qū)域的局部位姿參數(shù)和第i+1個(gè)局部圖像區(qū)域的局部位姿參數(shù),通過插值法計(jì)算得到第二像素點(diǎn)的位姿參數(shù);若第二像素點(diǎn)位于第一參數(shù)線的截止點(diǎn)與最后一個(gè)局部圖像區(qū)域之間,則第二像素點(diǎn)的位姿參數(shù)為最后一個(gè)局部圖像區(qū)域的局部位姿參數(shù),i為正整數(shù);
對于第一參數(shù)線上的每個(gè)像素點(diǎn),將像素點(diǎn)的位姿參數(shù)賦值給第一重疊區(qū)域中與像素點(diǎn)處于同一像素行的所有像素點(diǎn),得到第一重疊區(qū)域中每個(gè)像素點(diǎn)的位姿參數(shù)。
可選地,第二生成單元,具體用于:在當(dāng)前圖像的第一重疊區(qū)域之外設(shè)置第二參數(shù)線,第二參數(shù)線與第一參數(shù)線平行;
將第二參數(shù)線上的每個(gè)第三像素點(diǎn)的位姿參數(shù)設(shè)置為主位姿參數(shù);
確定第一重疊區(qū)域的邊緣線,邊緣線上的每個(gè)第四像素點(diǎn)的位姿參數(shù)是根據(jù)第一參數(shù)線上每個(gè)像素點(diǎn)的位姿參數(shù)確定的;
對于位于第二參數(shù)線和邊緣線之間的像素點(diǎn),根據(jù)與像素點(diǎn)處于同一像素行的第三像素點(diǎn)和第四像素點(diǎn)的位姿參數(shù),通過插值法計(jì)算像素點(diǎn)的位姿參數(shù),得到第二參數(shù)線和邊緣線之間的過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù);
根據(jù)過渡區(qū)域中各個(gè)像素點(diǎn)的位姿參數(shù)和主位姿參數(shù)生成當(dāng)前圖像中除第一重疊區(qū)域之外的其它圖像區(qū)域的第二變換矩陣。
可選地,計(jì)算模塊1240,包括:確定單元、提取單元和估算單元。
確定單元,用于對于局部重疊區(qū)域中的每個(gè)局部重疊區(qū)域,在圖像中確定與局部重疊區(qū)域相對應(yīng)的局部圖像區(qū)域;
提取單元,用于從局部圖像區(qū)域中提取特征點(diǎn);
估算單元,用于根據(jù)特征點(diǎn)通過預(yù)設(shè)估計(jì)算法計(jì)算局部位姿參數(shù)。
具體詳見圖5和圖8所示的實(shí)施例。
請參考圖13,其示出了本發(fā)明一個(gè)實(shí)施例提供的終端的結(jié)構(gòu)示意圖。該終端1300用于實(shí)施上述實(shí)施例中提供的數(shù)據(jù)解密方法。具體來講:
終端1300可以包括rf(radiofrequency,射頻)電路1310、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器1320、輸入單元1330、顯示單元1340、傳感器1350、音頻電路1360、wifi(wirelessfidelity,無線保真)模塊1370、包括有一個(gè)或者一個(gè)以上處理核心的處理器1380、以及電源1390等部件。本領(lǐng)域技術(shù)人員可以理解,圖13中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
rf電路1310可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器1380處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,rf電路1310包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(sim)卡、收發(fā)信機(jī)、耦合器、lna(lownoiseamplifier,低噪聲放大器)、雙工器等。此外,rf電路1310還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動(dòng)通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務(wù))、cdma(codedivisionmultipleaccess,碼分多址)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、lte(longtermevolution,長期演進(jìn))、電子郵件、sms(shortmessagingservice,短消息服務(wù))等。
存儲(chǔ)器1320可用于存儲(chǔ)軟件程序以及模塊,處理器1380通過運(yùn)行存儲(chǔ)在存儲(chǔ)器1320的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)解密。存儲(chǔ)器1320可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端1300的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器1320可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器1320還可以包括存儲(chǔ)器控制器,以提供處理器1380和輸入單元1330對存儲(chǔ)器1320的訪問。
輸入單元1330可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號(hào)輸入。具體地,輸入單元1330可包括圖像輸入設(shè)備1331以及其他輸入設(shè)備1332。圖像輸入設(shè)備1331可以是攝像頭,也可以是光電掃描設(shè)備。除了圖像輸入設(shè)備1331,輸入單元1330還可以包括其他輸入設(shè)備1332。具體地,其他輸入設(shè)備1332可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元1340可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端1300的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元1340可包括顯示面板1341,可選地,可以采用lcd(liquidcrystaldisplay,液晶顯示器)、oled(organiclight-emittingdiode,有機(jī)發(fā)光二極管)等形式來配置顯示面板1341。
終端1300還可包括至少一種傳感器1350,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1341的亮度,接近傳感器可在終端1300移動(dòng)到耳邊時(shí),關(guān)閉顯示面板1341和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端1300還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路1360、揚(yáng)聲器1361,傳聲器1362可提供用戶與終端1300之間的音頻接口。音頻電路1360可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器1361,由揚(yáng)聲器1361轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器1362將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路1360接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器1380處理后,經(jīng)rf電路1310以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器1320以便進(jìn)一步處理。音頻電路1360還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端1300的通信。
wifi屬于短距離無線傳輸技術(shù),終端1300通過wifi模塊1370可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖13示出了wifi模塊1370,但是可以理解的是,其并不屬于終端1300的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器1380是終端1300的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器1320內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器1320內(nèi)的數(shù)據(jù),執(zhí)行終端1300的各種功能和處理數(shù)據(jù),從而對手機(jī)進(jìn)行整體監(jiān)控??蛇x地,處理器1380可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器1380可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器1380中。
終端1300還包括給各個(gè)部件供電的電源1390(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器1380邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源1390還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端1300還可以包括藍(lán)牙模塊等,在此不再贅述。
具體在本實(shí)施例中,終端1300還包括有存儲(chǔ)器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行。上述一個(gè)或者一個(gè)以上程序包含用于執(zhí)行上述方法的指令。
應(yīng)當(dāng)理解的是,在本文中提及的“多個(gè)”是指兩個(gè)或兩個(gè)以上?!昂?或”,描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:單獨(dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。字符“/”一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。