格雷碼的編解碼(以3位爲例)
1 編碼
從二進制碼轉換到格雷碼,從右到左以0~n-1編號,若二進制碼字第i位和第i+1位相同,則對應格雷碼第i位位0,否則爲1(異或),第n位認爲是0。
十進制 | 二進制碼 | 格雷碼 |
---|---|---|
0 | 000 | 000 |
1 | 001 | 001 |
2 | 010 | 011 |
3 | 011 | 010 |
4 | 100 | 110 |
5 | 101 | 111 |
6 | 110 | 101 |
7 | 111 | 100 |
格雷碼好處:相鄰數只有1位變化,最大和最小數首位相連,能避免解碼錯誤。
將這個格雷碼的同一位上的值取出,從高位到低位排列爲:
0000 1111 | 0011 1100 | 0110 0110 |
---|
0對應0,1對應255,則可形成三幅格雷碼圖,即編碼後的圖像(陰影表示0)
2 解碼
通過生成的三幅格雷碼圖,一幅圖對應一位,最左邊的圖對應最高位,最右邊圖對應最低位,三幅圖一共能解出種格雷碼
如上面三幅圖的第一位解出:111,第五位解出:000,第七位解出:011。
3 用途
結構光編碼,用於雙目視覺標定,三維重建中,對一個像素進行編碼後,將格雷碼圖集通過投影儀投射到物體上,再用相機採集圖像並對像素解碼,來求得物體點在投影儀圖像中的位置座標。