首页 > 代码库 > AR专用汉明码

AR专用汉明码

增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

我们目前开发的AR专用汉明码是7X7的,外围用黑块包围,实际上就是5X5的一个汉明码。

下面简略的说一下汉明码的编码规则:

5X5的汉明码每一行5位,有3位校验位,2位数据位,具体是第1,3,5位是校验位,第2,4位是数据位

5X5的汉明码每一行仅有2个数据位,只能表示4种数据:00,01,10,11 。所以5行一共可以表示4的5次方种数,即1024种

校验位的计算方法:

5位表示位:D1,D2,D3,D4,D5     ---------第D1,D3,D5位校验位,D2,D4位数据位

校验位的计算方法自行百度吧 ,AR码不同的地方只是当D2,D4=00是为了防止全黑将D1置1即10000

所以,每一行能表示的4种情况分别是:

00:10000

01:10111

10:01001

11:01110

作为AR专用,为了提高识别率防止二维码全黑,规定数据位是00的编码出来后首位改为1,即100000

例如ID为156的汉明码是这样的:

技术分享

 

把它分割出每一小块分别表示如下数据:

技术分享

生成汉明码ID的规则就是在正确方向的前提下(有4个方向)从左到右依次把每一行表示的数据组合起来对应的十进制数就是它的ID

比如上面这个汉明码从第一行到最后一行组合起来就是0010011100即10011100,对应的十进制数是156,所以这个汉明码码的ID就是156。

我也是初学,好多都是转载别人的。

 

AR专用汉明码