<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          立體匹配基礎(chǔ):視差圖、深度圖、點(diǎn)云

          共 1634字,需瀏覽 4分鐘

           ·

          2022-06-08 19:31


          作者丨李迎松@知乎
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/522285892
          編輯丨3D視覺工坊
          本篇是比較簡單的基礎(chǔ)概念,剛?cè)腴T的朋友可能是需要的。
          視差圖
          點(diǎn)云
          首先,我們要介紹下這三個(gè)概念。

          視差(disparity)

          深度(depth)

          深度D等于像素在該視圖相機(jī)坐標(biāo)系下Z坐標(biāo),是空間單位。深度并不特在校正后的圖像對(duì)里使用,而是任意圖像都可獲取深度圖。

          視差圖(disparity map)

          視差圖指存儲(chǔ)立體校正后單視圖所有像素視差值的二維圖像。
          1. 視差圖是一張二維圖像,和原圖等大小
          2. 視差圖每個(gè)位置保存的以像素為單位的該位置像素的視差值
          3. 以左視圖視差圖為例,在像素位置p的視差值等于該像素在右圖上的匹配點(diǎn)的列坐標(biāo)減去其在左圖上的列坐標(biāo)

          深度圖(depth map)

          深度圖指存儲(chǔ)單視圖所有像素的深度值的二維圖像,是空間單位,比如毫米。
          1. 深度圖是一張二維圖像,和原圖等大小,也就和視差圖等大小
          2. 深度圖每個(gè)位置保存的是該位置像素的深度值
          3. 深度值就是相機(jī)坐標(biāo)系下的Z坐標(biāo)值

          點(diǎn)云(point cloud)

          其次,為什么會(huì)有視差圖和深度圖呢?
          我們知道,立體匹配一般是指逐像素的稠密匹配,這意味著每個(gè)像素都會(huì)得到一個(gè)視差值(包括無效值),如何存儲(chǔ)這些視差值呢,顯然以二維圖的方式存儲(chǔ)是很合適的,最大的兩點(diǎn)優(yōu)勢是一方面可以通過像素坐標(biāo)快速的在二維圖中找到對(duì)應(yīng)位置的視差值,而且和圖像一樣是有序的,鄰域檢索、視差濾波等將會(huì)變得非常方便;另一方面是可以直觀的通過觀察視差圖和原圖的對(duì)比,對(duì)視差圖的質(zhì)量有初步的判定。
          而深度圖的意義則是以更少的存儲(chǔ)空間、有序的表達(dá)圖像匹配的三維成果。更少的存儲(chǔ)空間是因?yàn)橹槐4媪艘粋€(gè)深度值,而不是三維點(diǎn)云的三個(gè)坐標(biāo)值,而深度值是可以結(jié)合像素坐標(biāo)計(jì)算三維點(diǎn)坐標(biāo)值的。有序是因?yàn)樯疃葓D和原圖像素是一一對(duì)應(yīng)的,所以原圖的鄰域信息完全繼承到了深度圖里。
          這就是視差圖和深度圖的意義,視差圖是立體匹配算法的產(chǎn)出,而深度圖則是立體匹配到點(diǎn)云生成的中間橋梁。
          視差圖和深度圖中間,有著一對(duì)一的轉(zhuǎn)換公式:

          常見問答:
          問:為什么我從.png格式的視差圖里讀取到的視差值和真實(shí)值有很大差異?
          答:我們要先搞清楚,視差圖是如何存儲(chǔ)的。通常而言,我們是把二維視差圖以圖像格式存儲(chǔ),常見的格式有png、tif、pfm等,但這些圖像格式存儲(chǔ)的數(shù)據(jù)類型是有區(qū)別的,其中png只能存儲(chǔ)整數(shù),而tif和pfm則可以存儲(chǔ)小數(shù)。而顯然準(zhǔn)確的視差值必然是浮點(diǎn)型的小數(shù),所以存儲(chǔ)為tif和pfm可以原值無損存儲(chǔ),而存儲(chǔ)為png必然會(huì)損失精度,所以有的代碼比如opencv會(huì)把得到的浮點(diǎn)型視差值乘以16倍取整,存儲(chǔ)到png里,這樣存儲(chǔ)視差值的精度變?yōu)?/16,對(duì)于這種情況我們在讀取png后要先除以16才是真實(shí)視差值,且視差會(huì)有階梯分層現(xiàn)象。
          那有同學(xué)就問,既然這樣為什么要存儲(chǔ)png呢?是因?yàn)槟壳爸髁鞯膱D像軟件,不支持直接看浮點(diǎn)格式的tif和pfm,存儲(chǔ)為png可以更好的觀看視差圖,當(dāng)然要是實(shí)際生產(chǎn)使用,是必然不建議存儲(chǔ)為png的,用來查看視差結(jié)果是可以的。
          還有人會(huì)直接把視差值拉伸或者壓縮到0~255,存儲(chǔ)到png或bmp等存儲(chǔ)整數(shù)的格式中,這樣的視差圖只能用來觀看視差效果,沒有其他作用,比如我的代碼里的存儲(chǔ)方式。
          問:極線像對(duì)下的深度圖和原圖的深度圖是一樣的嗎?如何轉(zhuǎn)換?
          答:不一樣,因?yàn)樯疃葓D是在視圖所在的相機(jī)坐標(biāo)系下的,所以和相機(jī)坐標(biāo)系強(qiáng)掛鉤,極限校正后的左視圖和原始的左視圖是不一樣的相機(jī)坐標(biāo)系,所以它們的深度圖是不一樣的。
          1. 對(duì)于極線像對(duì)左視圖某像素p,通過單應(yīng)變換H轉(zhuǎn)換到原左視圖上,得到原圖上的像素坐標(biāo)q。
          2. 將p的相機(jī)坐標(biāo)系坐標(biāo)通過一個(gè)旋轉(zhuǎn)R變換到原左視圖的相機(jī)坐標(biāo)系坐標(biāo),得到q的深度。
          3. H和R在極線校正步驟可以獲取(極線校正的必然產(chǎn)出)。


          本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。

          —THE END—
          瀏覽 211
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久热视频在线播放 | 欧美性爱永久免费 | 摸逼网站 | 亚洲无码视频在线播放 | 亚洲色欲av|