即編碼一系列的結構光圖案,依次投射到目標物體上。首先需要生成一系列編碼圖案。編碼圖案隨著投射時間的推進而變化,並且這一系列的圖案需要全部依次投影,以確保每一個像素對應的碼是唯一的。
時域圖案編碼信息的方式有很多,常見的包括二進位碼(binary code)和格雷碼(gray code)。兩種方法都需要分別編碼X軸、Y軸方向。
上面說到時域結構光編碼需要對行、列分別進行。對某一個像素點來說,二進位碼即,將該像素點所在的行數m,列數n轉換成二進位,二進位的每一位編碼到每一幅pattern中該像素點對應的位置。(即,m轉換成二進位數,該二進位數最終的位數等於行的pattern數)。以像素點(209,660)為例,其轉換成二進位為(0011010001,1010010100)
該像素點的編碼為:圖表示在一系列的pattern中,該像素點處的值。
上面的是以單個像素點舉例,整個pattern系列長什麼樣呢,以解析度為32*32的投影儀為例,按照上述編碼方式,得到一系列pattern:
將以上編碼圖案依次投射到被測物體上,使得每一個像素點最終的碼值都是唯一的。
格雷碼與二進位碼最大的不同是:格雷碼相鄰的兩個像素點的碼值,只有一位是不同的。以8*8解析度為例,以列為例:(a)代表二進位碼(b)代表格雷碼
格雷碼可以通過下述方法得到:首先通過之前的辦法得到二進位碼,後根據下圖的異或運算得到
格雷碼相對於二進位碼的優勢在於:在最後的pattern中,二進位碼的最大頻率(或者說是最小顏色變化間隔)是每一個像素,而格雷碼的頻率是每兩個像素,我們希望最大頻率時,最小顏色變化間隔儘可能大一些,這對投影和採圖都是有好處的。
本文以介紹格雷碼為主,故不在此詳細講述雙目原理。
匹配原則:根據雙目視差法,找到左右目拍攝到的同一個點,即可獲得深度信息。
我們通過投射結構光,對於每一個投影儀像素點,其最終的碼值是唯一的。這便使得雙目匹配成為可能。
投影儀編碼結構光,使得每個像素具有獨特的碼值,兩相機拍攝,需要解碼,確定每個像素的信息,進而完成匹配。
解碼是編碼的逆序。包括三步:
1)根據灰度值得到當前像素點的格雷碼;
2)格雷碼轉換成二進位碼;
3)二進位碼轉換成十進位碼(即當前像素所在的行數或者列數)。
投影儀解析度:2014*768
NpatternsCol=ceilf(log1024/log2)=10;
NpatternsRow=ceilf(log768/log2)=10;
水平、垂直各生成十張pattern。
下面展示幾張垂直圖案
以上內容如有錯誤或者需要補充的,請留言!同時歡迎大家關注微信公眾號,積極分享投稿,或可以點擊「原文閱讀」查看加入免費知識星球,以及申請加入微信群QQ群等交流群。
原創不易,轉載請聯繫群主,註明出處。如有侵權,聯繫刪除。
排版:particle 供稿:袁同學-西交大
點一下「在看」你會更好看耶