与时间编码相比,空间编码最大的特点就是只要投射1幅编码图案就可以。由于空间编码方法只需要投影一幅编码图像就可以获取像素值、颜色和几何形状等信息,所以该方法不仅可以进行静止物体的三维轮廓重建,还可以进行动态物体的三维轮廓重建。但是该方法也有一定的缺点,因为在编解码过程中高度依赖于测量点的邻域信息,因此若在测量过程中发生阴影遮挡时,就无法获得测量点的正确邻域信息,所以空间编码一般用于被测物体表面变化比较小的物体。目前普遍采用的编码方式有非正式编码、基于 De Bruijin编码和M- arrays编码。
(1)非正式编码
在1993年,abe等提出了一种编码方法,即加入一些缺口在每个条纹中间,通过这些随机的缺口来区分条纹的宽度和位置,条纹的位置由条纹自身的长度和临近线段的长度而决定,在该方法中摄像机的位置和环境光会对其精度产生较大影响,因此此方法的稳定性和一般性较低。在2006年,Van Gool和Koninckx等人提出一种新方法,即一种支持自我调整的方法。该方法可以调节条纹的宽度和密度,该方法利用的是彩色条纹和黑白条纹,并且他们之间有一定的倾斜角,然而该方法的计算量比较大,不仅如此,同时也要求实时跟踪和发现现场的信息,实际操作较为复杂。
(2)基于De Bruijin序列编码
1990年,Vuylsteke和Oosterlinck提出了一种基于De Bruijin序列的编码方式,其主要生成方法是利用n个不一样的字符排列成一个nm长度的字符串序列,从而得到一个n个符号的m次De Bruijin序列。此后,许多人提出了基于De Bruijin序列的方法来提高编码的分辨率。
(3)M-arrays编码
M-arrays编码是由Griffin等发明的M-阵列编码方法,其属于二进制空间编码,拥有窗口唯一性的特点,该方法主要是利用的矩阵的数学特性,其基本的定义是固定大小的只出现一次的子矩阵。在1997年,Spoelder提出了一种65×63的二值M-arrays阵列棋盘格图案,该方法利用的是在白格背景上的黑格表示的。