跑跑車游戲網(wǎng)
您的位置:首頁(yè)VR資訊中心VR百科 → 谷歌3D城市點(diǎn)云模型計(jì)算深度地圖方法

谷歌3D城市點(diǎn)云模型計(jì)算深度地圖方法

2017/6/5 9:05:43來(lái)源:本站整理作者:不詳我要評(píng)論(0)

谷歌街景能夠計(jì)算3D城市點(diǎn)云模型,那么怎么才能夠做到?可以來(lái)這里了解一下。

計(jì)算深度地圖

現(xiàn)在我們有了全景圖片,接下來(lái)需要做的是提取對(duì)應(yīng)的深度地圖。

獲得一個(gè)深度圖像的JSON代碼(representation)、其中包含了全景圖片中每個(gè)像素從相機(jī)到最近表面的距離信息。

通過(guò)Base64處理這些數(shù)據(jù),并將其轉(zhuǎn)化成無(wú)符號(hào)8位整數(shù)的陣列( array of unsigned 8-bit integers)后,我們就能獲得標(biāo)題信息(Header Information)并獲得有用的數(shù)據(jù),例如參考平面數(shù)字(number of referenced planes)。

事實(shí)上,在512×256網(wǎng)絡(luò)上的每一個(gè)像素都對(duì)應(yīng)了眾多平面(Planes)中的一個(gè),通過(guò)Normal Vector和其到攝像機(jī)的距離而定。

所以,要想計(jì)算出一個(gè)像素的深度,我們必須決定從攝影機(jī)中心發(fā)出的光線和相對(duì)對(duì)應(yīng)平面的交叉點(diǎn)。

將其重復(fù)到所有平面,我們能夠?qū)⑸疃鹊貓D制成512×256元素的32位浮動(dòng)陣列(32-bit float array of 512×256 elements),這個(gè)要比我們的RGB全景圖片分辨率低多了。

至于計(jì)算,對(duì)于每個(gè)點(diǎn)我們考慮它相關(guān)的平面,將其距離計(jì)算如下:

算法1:深度地圖計(jì)算

公式中的“indeces”包含了每個(gè)像素相關(guān)平面的陣列,為了能獲得一個(gè)代表單平面w∗ h vector的更簡(jiǎn)便的圖片,例如,我們可以創(chuàng)造colored canvas,其中寬度為w、高度為h,而每個(gè)像素可以被定義為:

算法2:深度地圖可視化

這時(shí)候會(huì)的出一個(gè)下圖類似的圖片

網(wǎng)友評(píng)論

發(fā)表評(píng)論

(您的評(píng)論需要經(jīng)過(guò)審核才能顯示)

查看所有0條評(píng)論>>