竞争编码一些数字的计算问题

个人记录用,不回答任何相关问题。

一些定义:

六角度竞争编码图,一个像素的特征占用3bit,相邻角度间的差距值为1.(相邻角度间1的个数差1)。

1)隔三个点采样的原因?

A:startPoint=18,endPoint=112。18+3*k=112的话k=32个编码点,一个编码点占3 bit,sizeof(int )= 4 byte = 32 bit,因此一行的图像编码后正好可以用3个int,即12个byte记录。

2)为何会占用 384 byte?

A: 一个特征占用3 bit,每行采样点k=32,采样行数k=32,共占用32*32*3 =3072 bit ,3072 / 8 =384 byte。即,可以用384 / 4 =96个int类型变量保存。


3)匹配的PlaneNum和PlaneSize是什么?

A:用按位异或操作进行匹配,因此编码后特征的三个bit分开按位异或,每一位是一个Plane,因此PlaneNum=3,384 / 3=128.因此整个特征一个Plane的PlaneSize=128(byte)。


4)为何用一个union来记录匹配值?

A: 匹配按异或与后,需要查找“1”的个数,因此需要事先保存一个十进制数到1个数的映射数组,unsigned int有32位,映射数组过大。因此建立一个union

采用{unsigned int bitCount,unsigned short bitCountLow,unsigned short bitCountHight }的模式,对于一个int数拆分成两个short,映射数组仅需65536大小。


5)如何计算得分?

A:对于没有位移的两特征,共匹配特征点32*32对,PlaneNum=3,因此共有共得到匹配值32*32*3次匹配,因此得分值等于 bitCount/(32*32*3=3072)。



你可能感兴趣的:(竞争编码一些数字的计算问题)