本發(fā)明涉及視頻監(jiān)控領(lǐng)域,特別涉及全景攝像機(jī)的拍攝技術(shù)。
背景技術(shù):
為了實(shí)現(xiàn)重點(diǎn)監(jiān)控區(qū)域的全覆蓋,一般采用多個相機(jī)進(jìn)行拍攝。舉例來說,對于一條城市主干道的十字路口的視頻監(jiān)控,從各個方向安裝布置多個網(wǎng)絡(luò)攝像機(jī),從而形成360度、無死角的監(jiān)控。
然而,上述技術(shù)方案中,每一臺網(wǎng)絡(luò)攝像機(jī)獨(dú)立地將視頻數(shù)據(jù)傳輸?shù)奖O(jiān)控中心,并在監(jiān)控中心的大屏上獨(dú)立地顯示,這樣做不但成本高,而且獨(dú)立畫面場景帶給觀看者的視覺體驗(yàn)也受到較大影響。
為了解決上述問題,通常先將前端多臺網(wǎng)絡(luò)攝像機(jī)采集的實(shí)時視頻分別發(fā)送給中心端服務(wù)器,進(jìn)行后端合成處理后,形成完整的全景圖像。但是,由于每一個網(wǎng)絡(luò)攝像機(jī)采集視頻圖像,并通過網(wǎng)絡(luò)傳輸后,會導(dǎo)致分別產(chǎn)生不同的時延。由于不同的時延,在圖像拼接時有可能存在不匹配的現(xiàn)象,導(dǎo)致合成圖像中的運(yùn)動物體錯位或重疊等問題。
另一方面,雖然也有通過將前端多臺網(wǎng)絡(luò)攝像機(jī)或網(wǎng)絡(luò)攝像機(jī)的多個攝像頭采集的實(shí)時視頻在前端直接進(jìn)行拼接,獲得全景圖像的解決方案,但存在對系統(tǒng)資源的消耗大、拼接效果不好的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是提供一種全景攝像機(jī)及其拍攝方法,能夠使得處理效率更好,處理質(zhì)量更好,并且更有利于系統(tǒng)設(shè)計(jì)小型化。
在本發(fā)明的第一個方面,提供了一種全景攝像機(jī),包括:
n個子攝像頭,n大于2;每個子攝像頭拍攝的角度不同;每個子攝像頭拍攝的拍攝圖像與該全景攝像機(jī)中至少一個其他子攝像頭拍攝的拍攝圖像有部分重合;
同步控制模塊,用于控制n個子攝像頭同步拍攝;
拼接校正模塊,用于以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和該緩存的m行像素值,完成對該像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于該拍攝圖像的總行數(shù);
拼接融合模塊,用于根據(jù)各子攝像頭的拍攝圖像的重合部分,將各個子攝像頭在該同步控制模塊控制下同步拍攝的拍攝圖像拼接成一個拼接圖像;
傳輸模塊,用于通過通信網(wǎng)絡(luò)發(fā)送該拼接融合模塊輸出的拼接圖像。
在本發(fā)明的另一實(shí)施方式中,n個子攝像頭的拍攝圖像為bayer格式的圖像,并且,該全景攝像機(jī)還包括:插值模塊,用于對n個子攝像頭拍攝的拍攝圖像進(jìn)行rgb插值,并將rgb插值后的拍攝圖像發(fā)送給所述拼接校正模塊。
在本發(fā)明的另一實(shí)施方式中,n個子攝像頭的拍攝圖像為bayer格式的圖像,并且,該全景攝像機(jī)還包括包括g插值模塊和rb插值模塊,其中,
g插值模塊用于對n個子攝像頭拍攝的bayer格式的圖像進(jìn)行g(shù)插值,并將經(jīng)g插值后的拍攝圖像發(fā)送給拼接校正模塊;
拼接校正模塊用于對經(jīng)g插值后的拍攝圖像進(jìn)行校正,并將校正后的拍攝圖像發(fā)送給rb插值模塊;
rb插值模塊用于對校正后的拍攝圖像進(jìn)行r插值和b插值。
在本發(fā)明的另一實(shí)施方式中,全景攝像機(jī)還包含:
雙線性插值模塊,用于對由拼接校正模塊校正后的拍攝圖像,根據(jù)目標(biāo)點(diǎn)在原拍攝圖像上的位置,參考目標(biāo)點(diǎn)周邊四個像素,生成第二像素值,完成雙線性插值,并將經(jīng)雙線性插值后的拍攝圖像發(fā)送給拼接融合模塊。
在本發(fā)明的另一實(shí)施方式中,全景攝像機(jī)還包含:
圖像旋轉(zhuǎn)模塊,用于對子攝像頭同步拍攝的拍攝圖像進(jìn)行90°旋轉(zhuǎn),并將經(jīng)旋轉(zhuǎn)的拍攝圖像發(fā)送給拼接校正模塊。
在本發(fā)明的另一實(shí)施方式中,該拼接校正模塊還用于接收該g插值模塊進(jìn)行插值后的圖像,并將校正后的拍攝圖像發(fā)送給該rb插值模塊。
在本發(fā)明的另一實(shí)施方式中,每個子攝像頭包括一個感光傳感器和一個透鏡,每個子攝像頭間隔相同的角度,且每個子攝像頭與地平面夾角相同。
在本發(fā)明的第二個方面,提供了一種全景攝像機(jī)的拍攝方法,該全景攝像機(jī)包括n個子攝像頭,n大于2;每個子攝像頭拍攝的角度不同;每個子攝像頭拍攝的拍攝圖像與該全景攝像機(jī)中至少一個其他子攝像頭拍攝的拍攝圖像有 部分重合;該方法包括以下步驟:
控制n個子攝像頭同步拍攝;
對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正,包含以下子步驟:以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和該緩存的m行像素值,完成對該像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于該拍攝圖像的總行數(shù);
根據(jù)各子攝像頭拍攝的拍攝圖像的重合部分,將各子攝像頭同步拍攝的拍攝圖像拼接成一個拼接圖像;
通過通信網(wǎng)絡(luò)發(fā)送該拼接圖像。
在本發(fā)明的另一實(shí)施方式中,n個子攝像頭拍攝的圖像為bayer格式,并且,該方法還包含以下步驟:對各個子攝像頭拍攝的拍攝圖像進(jìn)行rgb插值。
在本發(fā)明的另一實(shí)施方式中,n個子攝像頭拍攝的圖像為bayer格式,并且,
在對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正的步驟之前,還包含以下步驟:
對各子攝像頭的拍攝圖像進(jìn)行g(shù)插值;
在對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正的步驟之后,還包含以下步驟:
對經(jīng)g插值和拼接校正之后的拍攝圖像進(jìn)行r插值和b插值。在本發(fā)明的另一實(shí)施方式中,在所述控制所述n個子攝像頭同步拍攝的步驟之后,還包含以下步驟:
對所述n個子攝像頭同步拍攝的拍攝圖像進(jìn)行90°旋轉(zhuǎn)。
在本發(fā)明的另一實(shí)施方式中,通過通信網(wǎng)絡(luò)發(fā)送該拼接圖像的步驟之前,還包括以下步驟:對該拼接圖像進(jìn)行圖像壓縮。
本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,至少具有以下區(qū)別和效果:
通過拼接校正模塊對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
進(jìn)一步的,通過對拍攝圖像先進(jìn)行g(shù)插值處理,然后進(jìn)行拼接校正,最后 進(jìn)行rb插值處理,能夠使拼接校正模塊的存儲控制減少一半,明顯降低了對資源的消耗。
進(jìn)一步的,整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
進(jìn)一步的,基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
應(yīng)理解,在本發(fā)明范圍內(nèi)中,本發(fā)明的上述各技術(shù)特征和在下文(如實(shí)施例)中具體描述的各技術(shù)特征之間都可以互相組合,從而構(gòu)成新的或優(yōu)選的技術(shù)方案。限于篇幅,在此不再一一累述。
附圖說明
圖1是本發(fā)明一個實(shí)施方式中一種全景攝像機(jī)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明另一個實(shí)施方式中一種全景攝像機(jī)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明另一個實(shí)施方式中一種全景攝像機(jī)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一個實(shí)施方式中全景攝像機(jī)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖5是本發(fā)明一個實(shí)施方式中全景攝像機(jī)的示意圖;
圖6是本發(fā)明的全景攝像機(jī)的拍攝圖像拼接效果示意圖;
圖7是本發(fā)明一個實(shí)施方式中一種全景攝像機(jī)的主要模塊示意圖;
圖8是本發(fā)明的bayer格式圖像的數(shù)據(jù)格式示意圖;
圖9是本發(fā)明一個實(shí)施方式中插值與校正過程示意圖;
圖10是本發(fā)明一個實(shí)施方式中插值過程示意圖;
圖11是本發(fā)明一個實(shí)施方式中圖像在拼接校正前后的存儲架構(gòu)示意圖;
圖12是本發(fā)明一個實(shí)施方式中雙線性插值示意圖;
圖13是本發(fā)明一個實(shí)施方式中插值與校正過程示意圖;
圖14是一個實(shí)施方式中對bayer數(shù)據(jù)進(jìn)行g(shù)插值后的圖像數(shù)據(jù)示意圖;
圖15是本發(fā)明一個實(shí)施方式中圖像垂直拼接效果示意圖;
圖16是本發(fā)明一個實(shí)施方式中圖像旋轉(zhuǎn)示意圖;
圖17是本發(fā)明一個實(shí)施方式中全景攝像機(jī)的主要模塊示意圖;
圖18是本發(fā)明一個實(shí)施方式中一種全景攝像機(jī)的拍攝方法的流程示意圖;
圖19是本發(fā)明一個實(shí)施方式中一種全景攝像機(jī)的拍攝方法的流程示意圖。
在各附圖中,11:第一子攝像頭;12:第二子攝像頭;13:第三子攝像頭;14:第四子攝像頭;21:同步控制模塊;31:g插值模塊;32:拼接校正模塊;33:rb插值模塊;34:拼接融合模塊;35:傳輸模塊;322:插值模塊。
具體實(shí)施方式
在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術(shù)細(xì)節(jié)。但是,本領(lǐng)域的普通技術(shù)人員可以理解,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請各權(quán)利要求所要求保護(hù)的技術(shù)方案。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。
參見圖1,本發(fā)明第一實(shí)施方式提供一種全景攝像機(jī),包括:
第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14,其中,每個子攝像頭拍攝的角度不同,每個子攝像頭拍攝的拍攝圖像與全景攝像機(jī)中至少一個其他子攝像頭拍攝的拍攝圖像有部分重合。
同步控制模塊21,用于控制第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14同步拍攝。
拼接校正模塊32,用于以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和緩存的m行像素值,完成對像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于所述拍攝圖像的總行數(shù)。
拼接融合模塊34,用于根據(jù)第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14的拍攝圖像的重合部分,將各個子攝像頭在同步控制模塊21控制下同步拍攝的拍攝圖像拼接成一個拼接圖像。以及
傳輸模塊35,用于通過通信網(wǎng)絡(luò)發(fā)送拼接融合模塊32輸出的拼接圖像。
在上述實(shí)施方式或其他實(shí)施方式中,每個子攝像頭包括一個感光傳感器和一個透鏡,每個子攝像頭間隔相同的角度,且每個子攝像頭與地平面夾角相同。
上述全景攝像機(jī)的網(wǎng)絡(luò)結(jié)構(gòu)可參見圖4,其中全景攝像機(jī)41包括第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14,并且,通過網(wǎng)絡(luò)與網(wǎng)絡(luò)硬盤錄像機(jī)42,以及用戶客戶端43連接。
下面進(jìn)一步說明本實(shí)施方式中的全景攝像機(jī)的技術(shù)細(xì)節(jié)。
本實(shí)施方式中,全景攝像機(jī)的各子攝像頭拍攝的角度設(shè)置得各不相同,使各 子攝像頭在同時拍攝時,其得到的拍攝圖像不完全相同。同時,相鄰的兩個子攝像頭的視場角又存在部分重疊,使每個子攝像頭拍攝的拍攝圖像與全景攝像機(jī)中至少一個其他子攝像頭拍攝的拍攝圖像有部分重合。在本發(fā)明的實(shí)施方式中,該重疊區(qū)域的大小和方向可由每個子攝像頭的安裝參數(shù)確定。
全景攝像機(jī)的各子攝像頭的設(shè)置方式也可以通過本發(fā)明的另一個實(shí)施方式予以說明,如圖5所示,全景攝像機(jī)有8個攝像頭,每個子攝像頭包括一個感光傳感器和一個透鏡,每個子攝像頭間隔相同的角度,且每個子攝像頭與地平面夾角相同。但本領(lǐng)域技術(shù)人員可以理解,在本發(fā)明的其他實(shí)施方式中,各子攝像頭間隔的角度也可以設(shè)置得不同,每個子攝像頭與地平面的夾角也可以設(shè)置得不同。
進(jìn)一步地說,全景攝像機(jī)的各子攝像頭中的感光傳感器可以是互補(bǔ)金屬氧化物半導(dǎo)體(complementarymetaloxidesemiconductor,cmos)傳感器、電荷耦合元件(charge-coupleddevice,ccd)傳感器,等等。
全景攝像機(jī)的同步控制模塊21同時向第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14發(fā)送控制信號,可實(shí)現(xiàn)對各子攝像頭的同步拍攝控制。舉例來說,在本發(fā)明的一個實(shí)施方式中,同步控制模塊21向各子攝像頭的感光傳感器發(fā)送同步拍攝電信號,以此控制各子攝像頭同步拍攝。在另一實(shí)施方式中,同步控制模塊21也可以向各子攝像頭的電子快門發(fā)送同步拍攝電信號,從而控制各子攝像頭同步拍攝。本領(lǐng)域技術(shù)人員可以理解,攝像頭在外部電信號的控制下進(jìn)行拍攝是現(xiàn)有技術(shù),在此不做贅述。
需要指出的是,在全景攝像機(jī)的拼接校正模塊32中,“以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值”是指先緩存第1至m行,再不斷地依次將新行加入緩存,同時根據(jù)先入先出(fifo)的原則丟棄最先緩存的行,使緩存中始終只有m行,直到一個圖像的所有行都先后加入過緩存。具體地說,先緩存第1至m行,加入第m+1行同時丟棄第1行,加入m+2行同時丟棄第2行,加入第m+3行同時丟棄第3行,……,如此直到將圖像的最后一行加入到緩存(此時緩存中是該圖像的最后m行)。
下面簡要說明本實(shí)施方式的全景攝像機(jī)的工作過程:
首先,同步工作模塊21控制第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14進(jìn)行同步拍攝,得到的圖像被發(fā)送給拼接校正模塊32,拼接 校正模塊32對拍攝圖像進(jìn)行拼接校正,具體地說,以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和緩存的m行像素值,完成對像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于拍攝圖像的總行數(shù),并將拼接校正后的拍攝圖像發(fā)送給拼接融合模塊34。此后,拼接融合模塊34根據(jù)各子攝像頭拍攝的拍攝圖像的重合部分,將各子攝像頭同步拍攝的拍攝圖像拼接成一個拼接圖像,并發(fā)送給傳輸模塊35。最后,傳輸模塊35通過通信網(wǎng)絡(luò)發(fā)送拼接圖像。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過拼接校正模塊對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。整個系統(tǒng)的設(shè)計(jì)有利于設(shè)計(jì)小型化。
參見圖3,本發(fā)明的第二實(shí)施方式提供一種全景攝像機(jī),包含第一實(shí)施方式的各組件,此外,本實(shí)施例的全景攝像機(jī)還包括:
g插值模塊31,用于對第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14拍攝的拍攝圖像進(jìn)行g(shù)插值;
rb插值模塊33,用于對經(jīng)g插值之后的拍攝圖像進(jìn)行r插值和b插值。
如圖3所示,全景攝像機(jī)中各模塊的連接關(guān)系如下:
第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14輸出拍攝圖像到g插值模塊31;
g插值模塊31輸出處理后的拍攝圖像到拼接校正模塊32;
拼接校正模塊32輸出處理后的拍攝圖像到rb插值模塊33;
rb插值模塊33輸出處理后的圖像到拼接融合模塊34;
拼接融合模塊34輸出處理后的圖像到傳輸模塊35;
下面具體說明本實(shí)施方式中g(shù)插模塊31對第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14拍攝的拍攝圖像進(jìn)行g(shù)插值的方案:
h=|gij-gi(j+2)|+|2*bi(j+1)-bi(j-1)-bi(j+3)|
v=|g(i-1)(j+1)-g(i+1)(j+1)|+|2*bi(j+1)-bi(j-1)-bi(j+3)|
其中,h是水平方向參數(shù),v是垂直方向參數(shù)
如果h<v,則edgedirection=0,其中,edgedirection是邊緣方向,則:
【公式1】
如果h〉v,則edgedirection=1,則:
【公式2】
如果h=v,則edgedirection=2,則:
【公式3】
其中,r代表紅色分量,g代表綠色分量,b代表藍(lán)色分量,并且,i,j代表相互垂直的坐標(biāo)值,并且,[(i-1),j]的位置和[(i+1),j]的位置上是紅色點(diǎn),[i,(j-1)]的位置和[i,(j+1)]的位子上是藍(lán)色點(diǎn)。
下面具體說明本實(shí)施方式中rb插值模塊33對經(jīng)g插值之后的圖像進(jìn)行r插值和b插值的方案:
【公式4】
rij=gij+{[ri(j-1)-gi(j-1)]+[ri(j+1)-gi(j+1)]}/2
【公式5】
bij=gij+{[r(i-1)j-gi-1)j]+[r(i+1)j-g(i+1)j]}/2
【公式6】
bi(j+1)=gi(j+1)+{[b(i-1)j-gi-1)j]+[b(i-1)(j+2)-gi-1)(j+2)]+[b(i+1)j-g(i+1)j]+[b(i+1)(j+2)-g(i+1)(j+2)]}/4
【公式7】
ri(j+1)=g(i+1)j+{[ri(j-1)-gi(j-1)]+[ri(j+1)-gi(j+1)]+[r(i+2)(j-1)-g(i+2)(j-1)]+[r(i+2)(j+1)-g(i+2)(j+1))]}/4
【公式8】
r(i+1)(j+1)=g(i+1)(j+1)+{[ri(j+1)-gi(j+1)]+[r(i+2)(j+1)-g(i+2)(j+1)]}/2
【公式9】
r(i+1)(j+1)=g(i+1)(j+1)+{[r(i+1)j-g(i+1)j]+[r(i+1)(j+2)-g(i+1)(j+2)]}/2
其中,r代表紅色分量,g代表綠色分量,b代表藍(lán)色分量,并且,i,j代表 相互垂直的坐標(biāo)值,并且,[(i-1),j]的位置和[(i+1),j]的位置上是紅色點(diǎn),[i,(j-1)]的位置和[i,(j+1)]的位子上是藍(lán)色點(diǎn)。
此外,可以理解,對于bayer圖像進(jìn)行r插值、g插值、b插值的技術(shù)方案有多種,本申請不限于使用上述技術(shù)方案對bayer圖像進(jìn)行r插值、g插值和b插值。
在本實(shí)施方式中,可以任意選擇圖像水平拼接或圖像垂直拼接。下面分別對水平拼接與垂直拼接進(jìn)行更詳細(xì)的說明。
參見圖6-圖14,其中,該全景攝像的實(shí)現(xiàn)系統(tǒng)可以參見圖7,該系統(tǒng)中包含全景攝像機(jī)的第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14,圖像采集模塊72,拼接校正模塊32,雙線性插值模塊74,拼接融合模塊34,同步控制模塊21,校正表存儲模塊78,以及主控芯片79。
其中,數(shù)據(jù)采集模塊72用于各子攝像頭拍攝的拍攝圖像進(jìn)行采集,并轉(zhuǎn)化為并行的bayer格式的圖像數(shù)據(jù),并行數(shù)據(jù)的格式可參見圖9。
拼接前和拼接后的效果可以參見圖6,其中左側(cè)第一張圖像對應(yīng)第一子攝像頭11的拍攝圖像,第二張圖像對應(yīng)第二子攝像頭12的拍攝圖像,以此類推。
在圖像水平拼接方案中,假設(shè)圖7中的各子攝像頭的分辨率為1920*1080,按水平方案拼接四個子攝像頭的圖像,則拼接完成后圖像分辨率為:x*y,其中,理論分辨率小于7680*1080,最終分辨率和鏡頭及結(jié)構(gòu)安裝相關(guān)。在本文中,為了便于說明,以7168*1024進(jìn)行說明。
具體地說,首先對輸入的4對lvds(lowvoltagedifferentialsignaling,低壓差分信號)串行數(shù)據(jù)進(jìn)行采集接收,并轉(zhuǎn)化為并行的bayer格式圖像數(shù)據(jù),并行數(shù)據(jù)格式可參見圖8。接著,對并行的bayer圖像進(jìn)行拼接校正,其中,拼接校正輸入為bayer圖像,以及離線生存并放置在外部存儲器中的拼接校正表(簡稱“校正表”),輸出為拼接校正后的rgb圖像,可參見圖8。
進(jìn)一步說,首先需要對bayer圖像進(jìn)行插值,插值后bayer圖像就生存rgb圖像,其中插值過程如圖10所示。具體地說,參見圖10,“33”“35”“53”“55”這4個點(diǎn)為紅色點(diǎn),“24”“26”“44”“46”為藍(lán)色點(diǎn),其它的點(diǎn)為綠色點(diǎn),并且,最左側(cè)為bayer圖像(1001),可以分解為g圖像(1011)和rb圖像(1012),通過g插值生成完整的g圖像(1021),rb插值生成完整的r圖像(1022)和b圖像 (1023),最終每個像素點(diǎn)上r,g,b三原色都具有了,實(shí)現(xiàn)了bayer圖到rgb的插值。
其中r,b插值過程:
對于g的插值首先進(jìn)行方向判斷,計(jì)算邊緣方向edgedirection,
計(jì)算邊緣方向的方法:
以插值g35分量為例,計(jì)算邊緣方向:
h=|g34–g36|+|2*b35–b33–b37|;
v=|g25–g45|+|2*b35–b15–b55|;
如果h<v;則edgedirection==0;(水平方向)
如果h〉v;則edgedirection==1;(垂直方向)
如果h=v;則edgedirection==2;(不區(qū)分方向)
如果edgedirection==0
g35=(g34+g36)/2+(2*r35–r33–r37)/4;
如果edgedirection==1
g35=(g25+g45)/2+(2*r35–r15–r55)/4;
否則
edgedirection==2
g35=(g34+g36+g25+g45)/4+(2*r35–r33–r37+2*r35–r15–r55)/8;
同理g45的插值方案同g35,通過上述插值最終輸出的圖像都是r、g、b三色圖像。
此后,將完成插值的rgb圖像輸入拼接校正模塊32,對圖像進(jìn)行局部存儲,其中拼接校正模塊32的存儲空間大小和圖像本身畸變大小有關(guān),在本實(shí)施方式中,目前鏡頭采用5mm-8mm鏡頭,例如,對輸入圖像為1920*1080,圖像最大畸變行數(shù)為69行,存儲架構(gòu)可參見圖11。具體地說,圖11中所示拼接校正模塊32內(nèi)部按行結(jié)構(gòu)對圖像按行存儲,每個地址存儲一個像素rbg值,設(shè)計(jì)的最大儲存行數(shù)為最大畸變行數(shù)+3,在本實(shí)施方式中是72行,則由計(jì)算得到存儲空間:1920*72*36bits/8=622kb。
需要指出的是,在本實(shí)施方式中,拼接校正模塊32是通過line_cache模塊實(shí)現(xiàn)的,而在本發(fā)明的其他實(shí)施方式中,也可以通過其他方式實(shí)現(xiàn)拼接校正模塊32。
下面說明一下本實(shí)施方式中的拼接校正模塊32(line_cache模塊)的工作機(jī)制:輸入的拍攝圖像按行結(jié)構(gòu)存入拼接校正模塊32中,當(dāng)拼接校正模塊32完成區(qū)域存儲后,邏輯電路同時從外部存儲器中讀出校正表,并解析校正表的信息,其中校正表描述信息為像素從原始坐標(biāo)點(diǎn)移動到目標(biāo)地址坐標(biāo),完成圖像的校正,即完成原圖像每一個坐標(biāo)點(diǎn)的像素值搬移到對應(yīng)的坐標(biāo)位置。
根據(jù)校正表的信息從拼接校正模塊32中找出當(dāng)前要輸出的像數(shù)坐標(biāo),并從拼接校正模塊32中讀出,送往后續(xù)模塊進(jìn)行后續(xù)處理,如圖11中所示,校正表中解析的拼接校正模塊32中坐標(biāo)為:(x1,y1);(x3,y2);(x4,y4);(x6,y4);(x7,y5);(x8,y7)....的值順序輸出形成第一行完整數(shù)據(jù),校正后的坐標(biāo)為(x1,y1);(x2,y1);(x3,y1);(x4,y1);(x5,y1);(x6,y1)...;其中輸出坐標(biāo)對應(yīng)的像素值為輸入坐標(biāo)(x1,y1);(x3,y2);(x4,y4);(x6,y4);(x7,y5);(x8,y7)坐標(biāo)對應(yīng)的rgb值不變。
采用上述拼接校正模塊32局部緩存的方案解決了需要對圖像進(jìn)行整幀緩存再逐一讀取校正的傳統(tǒng)方案,使得校正算法本身不需要消耗內(nèi)存帶寬。
如圖12所示,逐個解析校正表從拼接校正模塊32中取出所需位置的像素并按順序輸出。
此后,輸出的圖像數(shù)據(jù)再輸入到雙線性插值模塊(如圖7所示),對由拼接校正模塊32校正后的拍攝圖像,根據(jù)目標(biāo)點(diǎn)在原拍攝圖像(即由上述子攝像頭同步拍攝得到的拍攝圖像)上的位置,參考目標(biāo)點(diǎn)周邊四個像素,生成第二像素值,完成雙線性插值,并將經(jīng)雙線性插值后的拍攝圖像發(fā)送給拼接融合模塊34。
具體地說,如圖12所示,px(1.1,1.3)即位置坐標(biāo)在(1.1,1.3)的像素值為:
假設(shè)p0;p1;p2;p3的r分量值分別為:100,120,140,160;則:
px的r分量=(1-0.1)*(1-0.3)p0+0.1*(1-0.3)p1+(1-0.1)*0.3p2+0.1*0.3p3=114;
同理得到g,b分量的值,最終輸出經(jīng)過雙線性插值后的圖像。
接著,由拼接融合模塊34對4個子攝像頭拼接校正后的圖像進(jìn)行融合,形成完整的大圖,如圖6所示。
需要說明的是,由于拼接校正模塊32中存儲為rgb數(shù)據(jù),對內(nèi)部緩存的要求較高,因此,可以如圖13所示,先由g插值模塊31對bayer格式的拍攝圖像進(jìn)行b插值,然后發(fā)送給拼接校正模塊32進(jìn)行拼接校正,然后再發(fā)送給rb插值模塊33進(jìn)行rb插值,從而輸出rgb格式的拍攝圖像。具體地說,由g插值模塊31對bayer數(shù)據(jù)進(jìn)行g(shù)插值后得到的圖像數(shù)據(jù)可參見圖14,即輸出r/b,g的圖像格式,具體地說,每個像數(shù)g分量完整,r/b分量像素點(diǎn)在原來r/b分量上再增加g分量。即r/b,g格式圖像存儲在拼接校正模塊32中,通過上述改進(jìn),具有明顯的優(yōu)點(diǎn),拼接校正模塊32存儲空間為比原來減少了二分之一。
具體地說,原方案中,拼接校正模塊32空間=1920*72*(12+24)/2/8bits=311kb。整個設(shè)計(jì)計(jì)算量和方案一相比沒有變化,只是把r,b分量計(jì)算放在了拼接校正模塊32之后,即在讀出拼接校正模塊32中的值同時,對需要補(bǔ)齊的r,b進(jìn)行插值,既校正算法和插值同時完成,在設(shè)計(jì)中為了實(shí)現(xiàn)和原方案同樣的處理速度,采用了多端口的拼接校正模塊32存儲架構(gòu),增加拼接校正模塊32的讀取帶寬,滿足了整個設(shè)計(jì)的需要。
可以理解,通過上述方案,整個流程中沒有進(jìn)行圖像緩存,所需的外部存儲器的帶寬只要滿足校正表的讀寫帶寬,改進(jìn)方案對內(nèi)部拼接校正模塊32進(jìn)行了優(yōu)化,使得內(nèi)部緩存減小有利于設(shè)計(jì)芯片小型化。
進(jìn)一步的說,圖像水平拼接方案的優(yōu)點(diǎn)在于,對sensor進(jìn)行水平拼接,拼接后 完整圖像比較寬,相機(jī)可以采用相對長焦距的鏡頭,方案中采用5-8mm鏡頭,使得相機(jī)可以看得更遠(yuǎn),本設(shè)計(jì)采用的前端處理系統(tǒng)如上所示采用無視頻幀緩存模式,且拼接校正模塊32得到有效控制,使得整個方案更為有效。
接下來說明圖像垂直拼接方案。如果每個子攝像頭的分辨率為1920*1080,并先對圖像做90度轉(zhuǎn)置后,再進(jìn)行拼接,則拼接完成后圖像分辨率為:x*y,其中,理論分辨率小于4480*1920,分辨率和鏡頭及具體安裝方式相關(guān)。為了便于對本發(fā)明進(jìn)行說明,本實(shí)施方式中以4096*1800為例,拼接后的效果可參見圖15,主要模塊結(jié)構(gòu)可參見圖17。
進(jìn)一步說,如圖17所示,整個系統(tǒng)方案和水平拼接方案(參見圖7)的差別在于,增加了與外部存儲模塊75相連的圖像旋轉(zhuǎn)模塊73。圖像旋轉(zhuǎn)模塊73用于對子攝像頭同步拍攝的拍攝圖像進(jìn)行90°旋轉(zhuǎn),并將經(jīng)旋轉(zhuǎn)的拍攝圖像發(fā)送給拼接校正模塊32。旋轉(zhuǎn)實(shí)現(xiàn)流程可參見圖16。
下面以輸入圖像(1601)為20*8分辨率為例,簡要說明轉(zhuǎn)置方案的流程:
在步驟1611中,從圖象(1601)輸入按塊方式準(zhǔn)備寫入內(nèi)存(1602),內(nèi)存存儲格式為32*5。圖像在內(nèi)存中的數(shù)據(jù)格式如圖,采用把2維塊展開成一維進(jìn)行存儲,方案中采用的塊為4*4,工程中可以根據(jù)需要采用8*8或者4*8及其他塊大小。
在步驟1612中,從內(nèi)存(1602)中按一維順序讀出。接著,對讀出的數(shù)據(jù)分4個fifo(先入先出隊(duì)列)緩存整理,整理方式在以圖中箭頭表示,按4個像素為單位循環(huán)放置4個fifo,最終數(shù)據(jù)在fifo中的格式見圖16。
在步驟1613中,從4個fifo中循環(huán)讀出形成完成的圖像(1603),格式見圖16,旋轉(zhuǎn)后圖像分辨率為8*20。
此后,讀出旋轉(zhuǎn)后的圖像,并整理成為一幀圖像數(shù)據(jù)流,再發(fā)送給拼接校正模塊,其中拼接校正模塊和雙線性插值以及拼接融合過程和之上方案一相同,不再贅述。
圖像垂直拼接方案的優(yōu)點(diǎn):對sensor進(jìn)行垂直拼接,拼接后完整圖像比較高,相機(jī)可以采用相對短焦距的鏡頭,方案中采用4-5mm鏡頭,使得相機(jī)上下視場角更大。本設(shè)計(jì)同樣采用采用無視頻幀緩存模式,且拼接校正模塊32得到有效控制,使得整個方案較為有效。
需要說明的是,本發(fā)明各設(shè)備實(shí)施方式中提到的各模塊都是邏輯模塊,在物 理上,一個邏輯模塊可以是一個物理模塊,也可以是一個物理模塊的一部分,還可以以多個物理模塊的組合實(shí)現(xiàn),這些邏輯模塊本身的物理實(shí)現(xiàn)方式并不是最重要的,這些邏輯模塊所實(shí)現(xiàn)的功能的組合才是解決本發(fā)明所提出的技術(shù)問題的關(guān)鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各設(shè)備實(shí)施方式并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的模塊引入,這并不表明上述設(shè)備實(shí)施方式并不存在其它的模塊。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過拼接校正模塊對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
通過對拍攝圖像先進(jìn)行g(shù)插值處理,然后進(jìn)行拼接校正,最后進(jìn)行rb插值處理,能夠使拼接校正模塊的存儲控制減少一半,明顯降低了對資源的消耗。
整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
參見圖2,本發(fā)明第三實(shí)施方式提供一種全景攝像機(jī),與第一實(shí)施方式、第二實(shí)施方式不同的是:
第一子攝像頭11、第二子攝像頭12、第三子攝像頭13和第四子攝像頭14的拍攝圖像為bayer格式的圖像,并且,全景攝像機(jī)還包括插值模塊322,用于對各子攝像頭拍攝的拍攝圖像進(jìn)行rgb插值。如圖9所示,bayer格式的拍攝圖像經(jīng)過插值模塊322進(jìn)行rgb插值后,發(fā)送給拼接校正模塊32,從而輸出的拍攝圖像的格式為rgb格式。參見圖9可以理解,在本實(shí)施方式中,拼接校正模塊32的輸入是bayer格式的圖像,以及存儲在外部存儲器中的拼接校正表,而輸出是拼接校正后的rgb圖像。插值過程可參見圖10。具體地說,圖10的左側(cè)是bayer格式的拍攝圖像,通過g插值生成完整的g圖像,通過rb插值生成完整的r,b圖像,最終每個像素點(diǎn)上r、g、b三原色都具有了,從而實(shí)現(xiàn)從baye格式的拍攝圖像到rgb格式的插值。
其中,r、b插值過程如下:
另一方面,對于g的插值,首先進(jìn)行方向判斷,計(jì)算邊緣方向edgedirection,下面舉例說明邊緣方向的計(jì)算過程:
以插值g35分量為例,計(jì)算邊緣方向:
h=|g34–g36|+|2*b35–b33–b37|;
v=|g25–g45|+|2*b35–b15–b55|;
如果h<v;則edgedirection==0;(水平方向)
如果h〉v;則edgedirection==1;(垂直方向)
如果h=v;則edgedirection==2;(不區(qū)分方向)
如果edgedirection==0
g35=(g34+g36)/2+(2*r35–r33–r37)/4;
如果edgedirection==1
g35=(g25+g45)/2+(2*r35–r15–r55)/4;
否則
edgedirection==2
g35=(g34+g36+g25+g45)/4+(2*r35–r33–r37+2*r35–r15–r55)/8;
同理g45的插值方案同g35,通過上述插值,最終輸出的圖像都為r、g、b三色圖像。
此后,插值完成的rgb圖像輸入拼接校正模塊32,對圖像進(jìn)行局部存儲,其中拼接校正模塊32的存儲空間大小和圖像本身畸變大小有關(guān),在本實(shí)施方式中,鏡頭采用5mm-8mm鏡頭。在這種情況下,輸入的拍攝圖像為1920*1080,拍攝圖像的最大畸變行數(shù)為72行,存儲架構(gòu)可參見圖11。
具體地說,圖11中的拼接校正模塊32內(nèi)部按行結(jié)構(gòu)對圖像按行存儲,每個地址存儲一個像素rbg值,設(shè)計(jì)的最大儲存行數(shù)為最大畸變行數(shù),即,在本實(shí)施方式中,是72行,在這種情況下,由計(jì)算得到存儲空間:1920*72*36bits/8=622kb。
下面簡要說明line_cashe的工作原理:
輸入的拍攝圖像按行結(jié)構(gòu)存入拼接校正模塊32中,當(dāng)拼接校正模塊32完成區(qū)域存儲后,邏輯電路會同時從外部存儲器中讀出校正表,并解析校正表的信息。需要指出的是,校正表的描述信息是像素從原始坐標(biāo)點(diǎn)移動到目標(biāo)地址坐標(biāo)。完成對拍攝圖像的校正,也就是完成將原拍攝圖像的每一個坐標(biāo)點(diǎn)的像素值搬移到對應(yīng)的坐標(biāo)位置。
具體地說,根據(jù)校正表的信息從拼接校正模塊32中找出當(dāng)前要輸出的像數(shù)坐標(biāo),并從拼接校正模塊32中讀出,送往后續(xù)模塊進(jìn)行后續(xù)處理,如圖中所示,校正表中解析的拼接校正模塊32中坐標(biāo)為:(x1,y1);(x3,y2);(x4,y4);(x6,y4);(x7,y5);(x8,y7)....的值順序輸出形成第一行完整數(shù)據(jù),校正后的坐標(biāo)為(x1,y1);(x2,y1);(x3,y1);(x4,y1);(x5,y1);(x6,y1)...;其中輸出坐標(biāo)對應(yīng)的像素值為輸入坐標(biāo)(x1,y1);(x3,y2);(x4,y4);(x6,y4);(x7,y5);(x8,y7)坐標(biāo)對應(yīng)的rgb值不變。
采用上述拼接校正模塊32局部緩存的方案的優(yōu)點(diǎn)在于,解決了需要對圖像進(jìn)行整幀緩存再逐一讀取校正的傳統(tǒng)方案,使得校正算法本身不需要消耗內(nèi)存帶寬。
接著,如圖7所示,輸出的rgb格式的拍攝圖像被輸入到雙線性插值模塊74,以根據(jù)目標(biāo)點(diǎn)在原圖像上的位置,參考周邊四個像素生成最終像素值。
具體地說,如圖12所示,px(1.1,1.3),即位置坐標(biāo)在(1.1,1.3)的像素值為例:
假設(shè)p0;p1;p2;p3的r分量值分別為:100,120,140,160;則:
px的r分量=(1-0.1)*(1-0.3)p0+0.1*(1-0.3)p1+(1-0.1)*0.3p2+0.1*0.3 p3=114;
同理得到g,b分量的值,最終輸出經(jīng)過雙線性插值后的拍攝圖像。
如圖7所示,拼接融合模塊34用于對上述完成拼接校正的拍攝圖像進(jìn)行融合,從而形成完整的大的拍攝圖像,可參見圖6。
本實(shí)施方式的全景攝像機(jī)的基本工作原理與上述實(shí)施方式類似,在此不做贅述。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過拼接校正模塊對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
參見圖18,本實(shí)施方式的全景攝像機(jī)的拍攝方法中,全景攝像機(jī)包括4個子攝像頭,每個子攝像頭拍攝的角度不同;每個子攝像頭拍攝的拍攝圖像與全景攝像機(jī)中至少一個其他子攝像頭拍攝的拍攝圖像有部分重合,本實(shí)施方式的拍攝方法包括以下步驟:
在步驟101:控制4個子攝像頭同步拍攝。
在步驟102:對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正,包含以下子步驟:以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和緩存的m行像素值,完成對像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于拍攝圖像的總行數(shù)。
在步驟103:根據(jù)各子攝像頭拍攝的拍攝圖像的重合部分,將各子攝像頭同步拍攝的拍攝圖像拼接成一個拼接圖像;
在步驟104:通過通信網(wǎng)絡(luò)發(fā)送所述拼接圖像。
需要在指出的是,上文中的實(shí)施方式是與本方法實(shí)施方式相對應(yīng)的裝置實(shí)施 方式,本實(shí)施方式可與上述實(shí)施方式互相配合實(shí)施。上述實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在上述實(shí)施方式中。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
實(shí)施例:全景攝像機(jī)的拍攝方法2
本實(shí)施方式的全景攝像機(jī)的拍攝方法與上述實(shí)施方式基本相同,不再贅述,它們之間的區(qū)別如下:
各個子攝像頭拍攝的拍攝圖像為bayer格式,并且,本實(shí)施方式的拍攝方法還進(jìn)一步包含以下步驟:
對各個子攝像頭拍攝的拍攝圖像進(jìn)行rgb插值。
另外,在本申請的另一個實(shí)施方式中,在對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正的步驟之后,還包含以下步驟:
對校正后的拍攝圖像,根據(jù)目標(biāo)點(diǎn)在原拍攝圖像上的位置,參考目標(biāo)點(diǎn)周邊四個像素,生成第二像素值,完成雙線性插值。
同樣地,上文中的實(shí)施方式是與本方法實(shí)施方式相對應(yīng)的裝置實(shí)施方式,本實(shí)施方式可與上述實(shí)施方式互相配合實(shí)施。上述實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在上述實(shí)施方式中。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過 程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
實(shí)施例:全景攝像機(jī)的拍攝方法3
本實(shí)施方式的全景攝像機(jī)的拍攝方法與上述實(shí)施方式基本相同,它們之間的區(qū)別如下:
各子攝像頭拍攝的圖像為bayer格式,并且,本實(shí)施方式的拍攝方法還包含以下步驟:
對各子攝像頭的拍攝圖像進(jìn)行g(shù)插值;
對經(jīng)g插值之后的拍攝圖像進(jìn)行r插值和b插值。
具體地說,如圖19所示,本實(shí)施方式的全景攝像機(jī)的拍攝方法包含以下步驟:
在步驟201:控制4個子攝像頭同步拍攝。
在步驟202:對各子攝像頭的拍攝圖像進(jìn)行g(shù)插值;
在本實(shí)施方式中,通過以下技術(shù)方案實(shí)現(xiàn)g插值:
h=|gij-gi(j+2)|+|2*bi(j+1)-bi(j-1)-bi(j+3)|
v=|g(i-1)(j+1)-g(i+1)(j+1)|+|2*bi(j+1)-bi(j-1)-bi(j+3)|
其中,h是水平方向參數(shù),v是垂直方向參數(shù)
如果h<v,則edgedirection=0,其中,edgedirection是邊緣方向,則:
【公式1】
如果h〉v,則edgedirection=1,則:
【公式2】
如果h=v,則edgedirection=2,則:
【公式3】
其中,r代表紅色分量,g代表綠色分量,b代表藍(lán)色分量,并且,i,j代表 相互垂直的坐標(biāo)值,并且,[(i-1),j]的位置和[(i+1),j]的位置上是紅色點(diǎn),[i,(j-1)]的位置和[i,(j+1)]的位子上是藍(lán)色點(diǎn)。
在步驟203:對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正,包含以下子步驟:以滑動窗口的方式緩存拍攝圖像中連續(xù)的m行像素值,并根據(jù)預(yù)先設(shè)定的校正表和緩存的m行像素值,完成對像素值的校正,并依次輸出校正后的每一行像素值,其中,m大于預(yù)先設(shè)定的圖像最大畸變行數(shù)+2,并且m小于拍攝圖像的總行數(shù)。
由于校正后的圖像行數(shù)一定比校正前小,在圖像輸出過程中,緩存區(qū)輸出存在更新了多行,但輸出只有一行的情況;
假設(shè)校正后圖像為n行,對于n從1至,重復(fù)執(zhí)行上述子步驟203a和203b,直至一個圖像的所有行均被校正輸出,其中,m為預(yù)先設(shè)定的圖像最大畸變行數(shù)+3。
為了能更好地理解步驟203中的拼接校正過程,下面作進(jìn)一步的解釋和舉例。
校正表中存儲有校正前、后圖像的對映關(guān)系信息,即,對于校正后圖像中的像素,都可以在校正表中找到與之對應(yīng)的校正前圖像的像素的坐標(biāo)信息。
校正表中包括校正表頭。輸出一行圖像時需要查看當(dāng)前行的校正表頭。校正表頭描述了校正后圖像的一行來自于校正前圖像中哪些行,即開始行和結(jié)束行。根據(jù)校正表頭,如果正要輸出的校正后圖像的一行(稱為當(dāng)前行)所對應(yīng)的校正前圖像的開始行和結(jié)束行之間的行都已在緩存中,則可以從緩存中輸出當(dāng)前行。
下面舉一個具體的例子:
假設(shè)校正前圖像為1920行,校正后需要輸出行數(shù)為1800行。通過校正表分析,要輸出1800行的校正后圖像的話,只需要用到校正前圖像中的1-1837行,其中最大畸變小于64行,選定的拼接校正模塊32(即以行為單位的緩存)為72行。每一幀圖像開始,逐行將校正前圖像的數(shù)據(jù)順序往拼接校正模塊32中寫入,當(dāng)寫到16行時,根據(jù)校正表頭中的信息,校正后圖像的第1行(即當(dāng)前行)的輸出需要用到校正前圖像的第1-16行,而此時拼接校正模塊32中已經(jīng)緩存的數(shù)據(jù)已滿足了要求,于是就根據(jù)校正表中的對映關(guān)系信息輸出校正后圖像的第1行。接著校正前圖像的第17行像素輸入拼接校正模塊32,此時拼接校正模塊32中有數(shù)據(jù)1-17行,同時根據(jù)校正表頭信息可以知道需要校正前圖像的第2-17行就可以輸出校正后圖像的第2行,而此條件此時已滿足,于是根據(jù)校正表中的對映關(guān)系信息輸出校正后圖像的第2行?!源祟愅?,將校正前圖像逐行輸入拼接校正模塊32(如果拼接校正模塊 32已滿則根據(jù)先入先出fifo的原則將最早輸入的行丟棄),并根據(jù)校正表頭信息判斷當(dāng)前拼接校正模塊32中的數(shù)據(jù)是否能夠輸出校正后圖像的當(dāng)前1行,如果能夠則輸出校正后圖像的當(dāng)前1行,否則繼續(xù)向拼接校正模塊32輸入1行校正前圖像的數(shù)據(jù)。這個過程中可能會多處存在以下兩種特殊情況:
1.寫入校正前圖像的1行到拼接校正模塊32,根據(jù)校正表頭中的信息判定要輸出的校正后圖像的當(dāng)前1行所需要的校正前圖像中的行并沒有全在拼接校正模塊32中,則需要繼續(xù)輸入校正前圖像的下1行到拼接校正模塊32中才能滿足輸出條件,即輸入2行甚至多行才能輸出1行;
2.在輸出校正后圖像的1行之后,根據(jù)校正表頭中的信息判定,要輸出的校正后圖像的下1行所需參考的校正前圖像的相關(guān)行都已經(jīng)在拼接校正模塊32中了,此時不用再向拼接校正模塊32輸入新的校正前圖像的行就可以繼續(xù)輸出校正后的下1行,即此時輸入1行數(shù)據(jù)輸出2行。
整個過程如上描述,當(dāng)校正前圖像的第1837行輸入到拼接校正模塊32中后,在拼接校正模塊32中的數(shù)據(jù)滿足校正后圖像的第1800行輸出的條件,校正后圖像的第1800行圖像輸出,對于校正前圖像中后續(xù)1837--1920行圖像數(shù)據(jù)不再寫入拼接校正模塊32中。當(dāng)新的一幀開始時整個line_cahce清空進(jìn)入下個循環(huán)。
本申請各實(shí)施方式中所稱的圖像的行和列是可以由用戶自定義的,例如對于1920*1080的圖像,可以將1920定義為行、1080定義為列,也可以將1080定義為行、1920定義為列。
在一個優(yōu)選例中,圖像最大畸變行數(shù)由測試圖像統(tǒng)計(jì)得到,即將標(biāo)準(zhǔn)的測試圖像供各子攝像頭拍攝,將拍攝所得圖像與標(biāo)準(zhǔn)的測試圖像相比較,即可得到各像素點(diǎn)在拍攝前后圖像中的位置變化,再進(jìn)行統(tǒng)計(jì)得到最大的畸變所跨越的行數(shù),即圖像最大畸變行數(shù)。在另一例子中,可以根據(jù)經(jīng)驗(yàn)值設(shè)定圖像最大畸變行數(shù)。
在步驟204:對經(jīng)g插值之后的拍攝圖像進(jìn)行r插值和b插值。
在一個優(yōu)選例中,通過以下技術(shù)方案實(shí)現(xiàn)r插值和b插值:
【公式4】
rij=gij+{[ri(j-1)-gi(j-1)]+[ri(j+1)-gi(j+1)]}/2
【公式5】
bij=gij+{[r(i-1)j-gi-1)j]+[r(i+1)j-g(i+1)j]}/2
【公式6】
bi(j+1)=gi(j+1)+{[b(i-1)j-gi-1)j]+[b(i-1)(j+2)-gi-1)(j+2)]+[b(i+1)j-g(i+1)j]+[b(i+1)(j+2)-g(i+1)(j+2)]}/4
【公式7】
ri(j+1)=g(i+1)j+{[ri(j-1)-gi(j-1)]+[ri(j+1)-gi(j+1)]+[r(i+2)(j-1)-g(i+2)(j-1)]+[r(i+2)(j+1)-g(i+2)(j+1)]}/4
【公式8】
r(i+1)(j+1)=g(i+1)(j+1)+{[ri(j+1)-gi(j+1)]+[r(i+2)(j+1)-g(i+2)(j+1)]}/2
【公式9】
r(i+1)(j+1)=g(i+1)(j+1)+{[r(i+1)j-g(i+1)j]+[r(i+1)(j+2)-g(i+1)(j+2)]}/2
其中,r代表紅色分量,g代表綠色分量,b代表藍(lán)色分量,并且,i,j代表相互垂直的坐標(biāo)值,并且,[(i-1),j]的位置和[(i+1),j]的位置上是紅色點(diǎn),[i,(j-1)]的位置和[i,(j+1)]的位子上是藍(lán)色點(diǎn)。
在步驟205:根據(jù)各子攝像頭拍攝的拍攝圖像的重合部分,將各子攝像頭同步拍攝的拍攝圖像拼接成一個拼接圖像;
在步驟206:對經(jīng)拼接圖像進(jìn)行圖像壓縮;
在步驟207:通過通信網(wǎng)絡(luò)發(fā)送拼接圖像。
本領(lǐng)域的技術(shù)人員可以理解,對于一個完整的rgb圖像來說,每一個像素都是由rgb三個顏色組成的,可以將一個rgb圖像分為r、g、b三個顏色的三個子圖像。
g插值就是對bayer圖像中的綠色部分進(jìn)行插值,得到完整的綠色子圖像(g圖像)。
r插值就是對bayer圖像中的紅色部分進(jìn)行插值,得到完整的紅色子圖像(r圖像)。
b插值就是對bayer圖像中的藍(lán)色部分進(jìn)行插值,得到完整的藍(lán)色子圖像(g圖像)。
進(jìn)行拼接校正的步驟在進(jìn)行g(shù)插值的步驟之后,且進(jìn)行拼接校正的步驟在進(jìn)行r插值和b插值的步驟之前。
在本申請的另一個實(shí)施方式中,也可以先進(jìn)行g(shù)插值和rb插值,得到完整的rgb圖像后,再進(jìn)行拼接校正。
在本申請的另一個實(shí)施方式中,傳輸帶寬足夠時,也可以不進(jìn)行圖像壓縮, 直接將拼接圖像傳輸出去。
在本申請的另一個實(shí)施方式中,在對各子攝像頭同步拍攝的拍攝圖像進(jìn)行拼接校正和rb插值的步驟之后,還包含以下步驟:
對校正后的拍攝圖像,根據(jù)目標(biāo)點(diǎn)在原拍攝圖像上的位置,參考所述目標(biāo)點(diǎn)周邊四個像素,生成第二像素值,完成雙線性插值。
由此可見在,在本實(shí)施方式的拍攝方法中,對各子攝像頭的拍攝圖像進(jìn)行g(shù)插值的步驟,在對拍攝圖像進(jìn)行拼接校正的步驟之前;并且,對經(jīng)所述g插值之后的圖像進(jìn)行r插值和b插值的步驟,在對拍攝圖像進(jìn)行拼接校正的步驟之后。
同樣地,上文中的實(shí)施方式是與本方法實(shí)施方式相對應(yīng)的裝置實(shí)施方式,本實(shí)施方式可與上述實(shí)施方式互相配合實(shí)施。上述實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在上述實(shí)施方式中。
本實(shí)施方式的優(yōu)點(diǎn)如下:
通過對拍攝圖像進(jìn)行局部緩存(行緩存),有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
通過對拍攝圖像先進(jìn)行g(shù)插值處理,然后進(jìn)行拼接校正,最后進(jìn)行rb插值處理,能夠使拼接校正模塊32(拼接校正模塊)的存儲控制減少一半,明顯降低了對資源的消耗。
整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
綜上所述,本發(fā)明的主要優(yōu)點(diǎn)包括:
1)通過拼接校正模塊32對拍攝圖像進(jìn)行局部緩存,有效解決了現(xiàn)有技術(shù)中需要對拍攝圖像進(jìn)行整幀緩存再逐一讀取并校正的過程中產(chǎn)生的問題,能夠 使拼接校正的過程本身不需要消耗內(nèi)存帶寬,從而極大地減小了對系統(tǒng)資源的消耗。
2)通過對拍攝圖像先進(jìn)行g(shù)插值處理,然后進(jìn)行拼接校正,最后進(jìn)行rb插值處理,能夠使拼接校正模塊的存儲控制減少一半,明顯降低了對資源的消耗。
3)整個系統(tǒng)設(shè)計(jì)簡單,有利于設(shè)計(jì)小型化。
4)基于行緩存的拼接校正處理與bayer插值算法結(jié)合,能夠保證拍攝圖像質(zhì)量的同時很好地實(shí)現(xiàn)拼接校正處理。
本發(fā)明的各方法實(shí)施方式均可以以軟件、硬件、固件等方式實(shí)現(xiàn)。不管本發(fā)明是以軟件、硬件、還是固件方式實(shí)現(xiàn),指令代碼都可以存儲在任何類型的計(jì)算機(jī)可訪問的存儲器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的或者可更換的介質(zhì)等等)。同樣,存儲器可以例如是可編程陣列邏輯(programmablearraylogic,簡稱“pal”)、隨機(jī)存取存儲器(randomaccessmemory,簡稱“ram”)、可編程只讀存儲器(programmablereadonlymemory,簡稱“prom”)、只讀存儲器(read-onlymemory,簡稱“rom”)、電可擦除可編程只讀存儲器(electricallyerasableprogrammablerom,簡稱“eeprom”)、磁盤、光盤、數(shù)字通用光盤(digitalversatiledisc,簡稱“dvd”)等等。
本發(fā)明各設(shè)備實(shí)施方式中提到的各單元都是邏輯單元,在物理上,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實(shí)現(xiàn),這些邏輯單元本身的物理實(shí)現(xiàn)方式并不是最重要的,這些邏輯單元所實(shí)現(xiàn)的功能的組合才是解決本發(fā)明所提出的技術(shù)問題的關(guān)鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各設(shè)備實(shí)施方式并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,這并不表明上述設(shè)備實(shí)施方式并不存在其它的單元。
在本發(fā)明提及的所有文獻(xiàn)都在本申請中引用作為參考,就如同每一篇文獻(xiàn)被單獨(dú)引用作為參考那樣。此外應(yīng)理解,在閱讀了本發(fā)明的上述講授內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。
并且,在本專利的權(quán)利要求書和說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本專利的權(quán)利要求書和說明書中,如果提到根據(jù)某要素執(zhí)行某行為,則是指至少根據(jù)該要素執(zhí)行該行為的意思,其中包括了兩種情況:僅根據(jù)該要素執(zhí)行該行為、和根據(jù)該要素和其它要素執(zhí)行該行為。
雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。