基于格雷编码原理的光栅条纹图像的条纹彩色编码方法
技术领域
本发明属于三维信息重构的技术领域,基于格雷编码原理,使用六种颜色得到序列周期唯一且根据序列中任意相邻四个条纹便可确定条纹位置的彩色条纹编码的方法,尤其涉及一种使用六种颜色的基于格雷编码原理的光栅条纹图像的条纹彩色编码方法。
背景技术
近年来,在三维测量技术中,对彩色图像的应用越来越多,应用范围越来越广泛,结构光法中的彩色光栅技术也有了较大的发展。使用彩色条纹编码即投影彩色光栅的目的是,通过在被测物体上投射一幅按照一定规律排列的彩色条纹图案,并用彩色CCD采集图像,分析得到物体的相位、高度等信息。彩色光栅的优点是可利用条纹颜色记录更多的被测物体的相位信息,达到减少图像采集数量、提高相位法实时性的目的,与此同时,更多的信息必然配合以更复杂的设计方法,彩色条纹编码设计时对颜色的选择和对编码思想的确定也给设计者带来了更大的挑战。尽管当今各种彩色编码方法层出不穷,但它们的性能并不理想,仍有很大的研究和改进空间。
三维轮廓检测及其重构技术是计算机图像处理技术的一个分支,是计算机视觉和计算机图形图像处理相结合的一个研究方向,它在生产自动化、机器人视觉、CAD、虚拟现实和医学映像诊断等领域都有着广泛的应用前景。
光栅投影法具有检测过程完全非接触、数据空间分辨率高、一次性瞬间投影直接实现三维空间物体形状检测和获取三维信息的特点。在实际应用中具有对环境要求低、成本低廉、使用操作方便等多种优点。
在光栅条纹图中,通过给待求相位场加上已知或未知的常相位,来得到新的条纹图,即增加求解条件。这种通过对条纹图相位场进行移相来增加若干常量相位而得到多幅条纹图用以求解相位场的方法,称为相移法。相移法可提供比其他方法更高精度的结果,更重要的是,它没有相位符号二义性问题。这是因为多幅相移图比单幅图提供了更多的信息。通过上述方法得到的相位值在-π~π的范围内是折叠的(wrapped),为了得到全场唯一的相位值,在从相位分布中导出被测参数之前必须对所有的象素识别出未知的2π倍数跃变,从而得到复原的相位解码。这一过程称为位相展开(phase unwrapping)或位相复原。
彩色编码条纹就是一组指定颜色条纹的序列,称为序列周期,其长度由测量范围要求而定,以整个序列周期的投射范围能完全覆盖被测物体为宜。对拍摄的编码条纹图解码时,要想确定某个彩色条纹在序列周期中的准确位置,必须至少识别与这个条纹相邻的一个或多个条纹,根据它们的组合顺序来搜索它们在序列周期中的位置。这个组合最少所需包含的条纹数量就称为编码周期。编码周期不宜过长,因为被测物体表面一块形状连续变化的区域上至少应有一个编码周期,才能正确识别这个区域的位置,进而得到正确的位置和高度的对应信息,如果被测物体表面形状变化不连续且较频繁,则有的形状连续变化的区域宽度可能小于一个编码周期的宽度,导致此区域无法正确识别,无法解码。
根据编码周期的起始位置,彩色条纹编码可分为编码周期起始位置确定和任意两种。所谓编码周期起始位置确定,就是以固定的一种或两种颜色作为每个编码周期的第一个条纹颜色,一般选白色或黑色。这样,在解码的时候,不管从哪个条纹开始解码,只要往前搜索到指定的起始的条纹,就可以从这个条纹开始搜索得到整个编码周期,最终确定条纹的位置;如果往前搜索起始条纹失败,也可以往后搜索到下一个编码周期的起始条纹,确定了下一个编码周期,也可以借此确定本条纹的位置。所谓编码周期起始位置任意,就是没有确定的编码周期起始的条纹颜色,每一个条纹都可以作为一个编码周期的起始条纹,根据设定的编码周期长度,由每个条纹往后一个编码周期的条纹的组合都是唯一的,都可以由此而确定条纹的位置。
显然,编码周期起始位置任意的彩色条纹编码适用范围更广,更能适应被测物体表面形状的突变,因此性能更优。
在彩色编码条纹的设计中,为了使条纹颜色容易区分,通常选择颜色区分度大的纯色进行编码,对于红色R、绿色G、蓝色B三个分量,只选用0和255两个灰阶,这样三个分量可以构成八种纯色:白色(255,255,255)、红色(255,0,0),绿色(0,255,0)、蓝色(0,0,255)以及他们的补色:黑色(0,0,0)、青色(0,255,255)、品色(255,0,255)、黄色(255,255,0);其中各颜色后面的括号内分别是红色(R)、绿色(G)、蓝色(B)三个分量的灰度值。
为了扩展序列周期或者编码周期,可选择全部八种纯色来参与编码。刘维一等经研究表明,八种纯色中,白色、红色、绿色、蓝色最容易区分,因而只使用这四种颜色作为条纹颜色。也有人考虑到,经过投影和CCD采集后,红色和蓝色之间会出现混叠,使其相互干扰而难以得到准确的边界。而红色和蓝色向绿色扩散的程度相同,因此在红色和蓝色条纹中间插入细绿色条纹,这样在解码时只需找到绿色条纹的中心,就能确定红色和蓝色条纹的交界。此外,也有人使用红色、绿色、蓝色三种颜色或者七种纯色排列组合进行编码,而选择黑色或者白色条纹作为间隔,即将第奇数个条纹全部设为黑色或者白色条纹,第偶数个条纹则按照编码规则进行排列组合。这样既有利于解码之前的图像分割,又能增加编码周期的长度。
任何彩色条纹编码都必须满足以下条件即可:任意相邻两条纹颜色不同;且任意编码周期的颜色序列都不相同,即在解码时不会产生歧义而导致解码错误。
但是这些编码都有相邻彩色条纹边界处的码间干扰问题,这是由于相邻彩色条纹的RGB三个分量中可能有两个或三个分量都不同,用投影仪和CCD实现投影和图像采集时,条纹边界处各分量的变化可能是不同时的,就会导致各分量决定的条纹边界不重合,在条纹边界处就可能出现错误的RGB分量组合代表的颜色,扰乱图像分割和解码过程,降低解码精度。
有些彩色条纹编码在设计时为了避免上述原因造成的码间干扰,使编码符合格雷编码原则。格雷编码考虑到投影、图像采集以及解码中产生错误的概率,规定相邻条纹间只能有一位不同,对于彩色编码来说,也就是RGB三个分量中只能有一个分量不同,可有效避免条纹边界出各分量变化不同时造成的码间干扰问题。但是这些编码没有选择最易区分的颜色进行编码,有些相邻颜色由于受到图像采集时光照等外界因素的影响,在后期彩色图像分割会难以区分,无法得到准确边界。
综上所述,设计彩色投影光栅图主要有两个方面的问题:一、适当选择颜色种类和数量,平衡对图像包含信息量的要求和彩色图像分割精度要求,因为图像中包含的颜色种类越多,所代表的物体相位信息也就越多,同时又会增大不同颜色间相互干扰的几率,并且容易受到光照等外界因素的影响,降低后期彩色图像分割的精度和准确度,进而影响解码结果。二、为了唯一确定绝对相位,需要设计唯一的条纹序列,即彩色条纹编码问题。同时,为了扩大测量范围,应使唯一的条纹序列周期尽量大。
在实现彩色条纹编码时,需要考虑以下问题:
1)彩色条纹的宽度设计要合适,不能太窄,太窄的条纹进行投影采集时会变得模糊,将加大找条纹的难度;而太宽又会造成高度信息呈阶梯状分布,影响测量精度。根据实验经验,一般可将条纹宽度设置为32个像素,并且保证序列周期在20到40个彩色条纹范围内,这样既能使光栅投影清楚,又能有效的保存物体高度调制的变形光栅信息。
2)为了进一步提高后期彩色图像分割时的精度和准确度,使彩色条纹编码符合格雷编码原则,减小相邻彩色条纹间相互干扰的几率。
3)满足编码周期起始位置任意,以扩大彩色条纹编码对被测物体表面形状变化的适应性。
4)编码组合序列必须唯一,这样才能准确确定彩色条纹所在的周期,进而进行相位展开。
发明内容
针对现有技术所存在的缺点和限制,本发明的目的在于提供一种能够克服三维扫描系统中码间干扰的基于格雷编码原理的光栅条纹图像的条纹彩色编码方法。
本发明设计一种利用八种纯色中最不易发生相互干扰的六种纯色按照格雷编码原理排列,克服了码间干扰问题,得到序列周期唯一且编码周期起始位置任意的彩色条纹编码的方法,此方法选用八种纯色中最不易受到光照等因素的影响或者最不易与其它颜色发生干扰而难以正确解码的六种颜色进行编码,减小了发生码间干扰的几率,由此选择了彩色条纹颜色及数目;接着列出所选六种颜色条纹的长度为4个彩色条纹且满足格雷编码原理的彩色条纹组合,以此为依据得到了序列周期唯一且编码周期起始位置任意的彩色条纹编码。本发明采用如下技术方案:
一种基于格雷编码原理的光栅条纹图像的条纹彩色编码方法,以32个像素为彩色条纹宽度,设计光栅条纹图像,步骤如下:
步骤1:列出八种纯色:采用对24位真彩图像三个分量R、G、B分别赋值实现,24位真彩图像的R、G、B分量分别是8位,有256个灰阶,把每个分量只取0和255两个值,并将灰阶255时为1,灰阶0时为0,这样R、G、B分量的取值分别为0或1,这三个分量有8种组合且分别代表八种纯色:黑色为000、蓝色为001、绿色为010、青色为011、红色为100、品色为101、黄色为110、白色为111,
步骤2:选择彩色条纹颜色、数目,并为彩色条纹编号:选择八种纯色中最不易受到光照等因素的影响或者最不易与其它颜色发生干扰而难以正确解码的六种颜色进行编码,所述的六种颜色为蓝色001,黑色000,红色100,黄色110,白色111和品色101,并依次将蓝色001条纹,黑色000条纹,红色100条纹,黄色110条纹,白色111条纹和品色101条纹的编号记为I、II、III、IV、V及VI,
步骤3:确定编码周期,并列出长度为此编码周期的所有可能的彩色条纹编码组合:以4个彩色条纹为编码周期,根据步骤2中设定的编号,满足格雷编码且编码周期为4个彩色条纹的所有可能的彩色条纹编码组合为:
I II I II,I II III II,I II III IV,
II I II I,II I II III,II III II I,II III II III,II III IVIII,II III IV V,
IIIII I II,III II III II,III II III IV,III IV III II,III IV III IV,III IV V IV,III IV V VI,
IV III II I,IV III II III,IV III IV III,IV V IV III,IV III IVV,IV V IV V,IV V VI V,
V IV III II,V IV III IV,V IV V IV,V IV V VI,V VI V IV,V VI V VI,
VI V IV III,VI V IV V,VI V VI V,
步骤4:确定各个编码周期的彩色条纹编码:
步骤4.1:将步骤3中列出的所有可能的彩色条纹编码组合作为待选区,从中取彩色条纹编码组合I II IIIIV作为第1个编码周期,并在待选区中删除此彩色条纹编码组合,形成第1待选区,
步骤4.2:从第1待选区选择出前3个彩色条纹与第1个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II IIIIV III和II IIIIV V,随机选取II IIIIV V作为第2个编码周期,并在第1待选区中删除此彩色条纹编码组合,形成第2待选区,
步骤4.3:从第2待选区选择出前3个彩色条纹与第2个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IIIIV V IV和IIIIV V VI,随机选取IIIIV V VI作为第3个编码周期,并在第2待选区中删除此彩色条纹编码组合,形成第3待选区,
步骤4.4:从第3待选区选择出前3个彩色条纹与第3个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V VI V作为第4个编码周期,并在第3待选区中删除此彩色条纹编码组合,形成第4待选区,
步骤4.5:从第4待选区选择出前3个彩色条纹与第4个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V VI V IV和V VI V VI,随机选取V VI V VI作为第5个编码周期,并在第4待选区中删除此彩色条纹编码组合,形成第5待选区,
步骤4.6:从第5待选区选择出前3个彩色条纹与第5个编码周期中的后3个彩色条纹相同的彩色条纹编码组合VI V VI V作为第6个编码周期,并在第5待选区中删除此彩色条纹编码组合,形成第6待选区,
步骤4.7:从第6待选区选择出前3个彩色条纹与第6个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V VI V IV作为第7个编码周期,并在第6待选区中删除此彩色条纹编码组合,形成第7待选区,
步骤4.8:从第7待选区选择出前3个彩色条纹与第7个编码周期中的后3个彩色条纹相同的彩色条纹编码组合VI V IV III和VI V IV V,随机选取VI V IVIII作为第8个编码周期,并在第7待选区中删除此彩色条纹编码组合,形成第8待选区,
步骤4.9:从第8待选区选择出前3个彩色条纹与第8个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IVIII II和V IVIII IV,随机选取V IVIII II作为第9个编码周期,并在第8待选区中删除此彩色条纹编码组合,形成第9待选区,
步骤4.10:从第9待选区选择出前3个彩色条纹与第9个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IVIII II I和IVIII II III,随机选取IVIII II I作为第10个编码周期,并在第9待选区中删除此彩色条纹编码组合,形成第10待选区,
步骤4.11:从第10待选区选择出前3个彩色条纹与第10个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II I II作为第11个编码周期,并在第10待选区中删除此彩色条纹编码组合,形成第11待选区,
步骤4.12:从第11待选区选择出前3个彩色条纹与第11个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II I II I和II I II III,随机选取II I II I作为第12个编码周期,并在第11待选区中删除此彩色条纹编码组合,形成第12待选区,
步骤4.13:从第12待选区选择出前3个彩色条纹与第12个编码周期中的后3个彩色条纹相同的彩色条纹编码组合I II I II作为第13个编码周期,并在第12待选区中删除此彩色条纹编码组合,形成第13待选区,
步骤4.14:从第13待选区选择出前3个彩色条纹与第13个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II I II III作为第14个编码周期,并在第13待选区中删除此彩色条纹编码组合,形成第14待选区,
步骤4.15:从第14待选区选择出前3个彩色条纹与第14个编码周期中的后3个彩色条纹相同的彩色条纹编码组合I II III II作为第15个编码周期,并在第14待选区中删除此彩色条纹编码组合,形成第15待选区,
步骤4.16:从第15待选区选择出前3个彩色条纹与第15个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III II I和II III II III,随机选取II III II I作为第16个编码周期,并在第15待选区中删除此彩色条纹编码组合,形成第16待选区,
步骤4.17:从第16待选区选择前3个彩色条纹与第16个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第16待选区中没有这样的彩色条纹编码组合,且第16待选区不为空,则重新选择第16个编码周期,从步骤4.16中选出的两个彩色条纹编码组合II III II I和II III II III中选取II III II III作为第16个编码周期,并在第15待选区中删除此彩色条纹编码组合,形成第17待选区,
步骤4.18:从第17待选区选择出前3个彩色条纹与第16个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II III II和III II III IV,随机选取III II IIIIV作为第17个编码周期,并在第17待选区中删除此彩色条纹编码组合,形成第18待选区,
步骤4.19:从第18待选区选择出前3个彩色条纹与第17个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II IIIIV III作为第18个编码周期,并在第17待选区中删除此彩色条纹编码组合,形成第19待选区,
步骤4.20:从第19待选区选择出前3个彩色条纹与第18个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV III II和III IV III IV,随机选取III IV III IV作为第19个编码周期,并在第19待选区中删除此彩色条纹编码组合,形成第20待选区,
步骤4.21:从第20待选区选择出前3个彩色条纹与第19个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III IV III和IV III IV V,随机选取IV III IV V作为第20个编码周期,并在第20待选区中删除此彩色条纹编码组合,形成第21待选区,
步骤4.22:从第21待选区选择出前3个彩色条纹与第20个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV V IV作为第21个编码周期,并在第21待选区中删除此彩色条纹编码组合,形成第22待选区,
步骤4.23:从第22待选区选择出前3个彩色条纹与第21个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V IV III和IV III IV V,随机选取IV V IV V作为第22个编码周期,并在第22待选区中删除此彩色条纹编码组合,形成第23待选区,
步骤4.24:从第23待选区选择出前3个彩色条纹与第22个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IV V IV和V IV V VI,随机选取V IVV VI作为第23个编码周期,并在第23待选区中删除此彩色条纹编码组合,形成第24待选区,
步骤4.25:从第24待选区选择前3个彩色条纹与第23个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第24待选区中没有这样的彩色条纹编码组合,且第24待选区不为空,则重新选择第23个编码周期,从步骤4.24中选出的两个彩色条纹编码组合V IV V IV和V IV V VI中选取V IV V IV作为第23个编码周期,并在第23待选区中删除此彩色条纹编码组合,形成第25待选区,
步骤4.26:从第25待选区选择出前3个彩色条纹与第23个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V IV III作为第24个编码周期,并在第25待选区中删除此彩色条纹编码组合,形成第26待选区,
步骤4.27:从第26待选区选择出前3个彩色条纹与第24个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IV III IV作为第25个编码周期,并在第26待选区中删除此彩色条纹编码组合,形成第27待选区,
步骤4.28:从第27待选区选择出前3个彩色条纹与第25个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III IV III作为第26个编码周期,并在第27待选区中删除此彩色条纹编码组合,形成第28待选区,
步骤4.29:从第28待选区选择出前3个彩色条纹与第26个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV III II作为第27个编码周期,并在第28待选区中删除此彩色条纹编码组合,形成第29待选区,
步骤4.30:从第29待选区选择出前3个彩色条纹与第27个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III II III作为第28个编码周期,并在第29待选区中删除此彩色条纹编码组合,形成第30待选区,
步骤4.31:从第30待选区选择出前3个彩色条纹与第28个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II III II作为第29个编码周期,并在第30待选区中删除此彩色条纹编码组合,形成第31待选区,
步骤4.32:从第31待选区选择出前3个彩色条纹与第29个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III II I作为第30个编码周期,并在第31待选区中删除此彩色条纹编码组合,形成第32待选区,
步骤4.33:从第32待选区选择前3个彩色条纹与第30个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第32待选区中没有这样的彩色条纹编码组合,且第32待选区中只剩下两个彩色条纹编码组合,小于五个,此时编码结束,
最终得到序列周期唯一的光栅条纹图像的彩色条纹编码,如图4和图5所示,所得到的彩色条纹编码用彩色条纹的编号表示如下:
I II III IV V VI V VI V IV III II I II I II III II III IV IIIIV V IV V IV III IV III II III II I。
与现有技术相比,本发明具有如下优点:
本发明主要在于提供一种能够提高相位法的测量精度和准确度的三维扫描系统中使用六种颜色的基于格雷编码原理的光栅条纹图像的彩色条纹编码方法。
在三维信息重构中,选用投影彩色光栅法有测量范围大、测量速度快的优点,但是,由于一般的投影彩色光栅法没有将格雷编码原则和容易辨别的颜色结合应用到彩色条纹编码中,影响了对光栅图处理时彩色图像分割和解码的准确度,因此测量精度不够高;而且没有同时满足编码周期起始位置任意的条件,使彩色条纹编码对被测物体表面形状变化的适应性受到了限制。如图2所示,如果没有依照格雷编码的原则进行编码,相邻彩色条纹的RGB三个分量中可能有两个分量不同,或三个分量都不同,用投影仪和CCD实现投影和图像采集时,彩色条纹边界处各分量的变化可能是不同时的,就会导致各分量决定的条纹边界不重合,在彩色条纹边界处就可能出现错误的RGB分量组合代表的颜色,扰乱图像分割和解码过程,降低解码精度;如果将步骤1中提到的八种纯色全部用于彩色条纹编码,就极易受到光照等因素的影响而出现码间干扰,难以正确解码。如果编码周期的起始位置是确定的颜色,则当被测物体表面某个形状连续变化的区域上只能投射一个编码周期宽度的彩色条纹时,以代表编码周期起始位置颜色的条纹为基准,向前或向后都可能无法搜索到一个完整的编码周期,也就无法正确识别这个区域的位置,进而得到正确的位置和高度的对应信息。
针对以上情况,我们设计了一种使用六种不易发生相互干扰的纯色按照格雷编码原理排列解决码间干扰的问题,组合编码得到序列周期唯一且根据序列中任意相邻四个条纹便可确定条纹位置的彩色条纹编码方法,如图3所示,此方法利用格雷编码每个编码与其相邻编码相比只有一位数字不同的性质,克服了条纹边界处各分量变化不同步造成的误差,选用八种纯色中最不易受到光照等因素的影响或者最不易与其它颜色发生干扰而难以正确解码的六种颜色进行编码,减小了发生码间干扰的几率,由此选择了彩色条纹颜色及数目;接着列出所选六种颜色条纹的长度为4个彩色条纹且满足格雷编码原理的彩色条纹组合,以此为依据得到了序列周期唯一且编码周期起始位置任意的彩色条纹编码。用此彩色条纹编码设计投影光栅,编码方法编程简单,进行三维扫描系统中后续的相位展开只需要验证任意四条相邻的彩色条纹的排列顺序就能准确定位条纹的绝对相位和边界位置,加快了图像处理速度,提高了三维扫描系统中相位法的测量精度和准确度。
附图说明
图1是基于格雷编码原理的光栅条纹图像的条纹彩色编码方法的流程图。
图2a是一种基于八种纯色的光栅条纹图像的条纹彩色编码方法编码形成的彩色条纹图。
图2b是将图2a投影在被测物体上时,用彩色CCD采集得到的图像。
图2c是对图2b进行彩色图像分割后得到的二值化图像。
图3a是基于格雷编码原理的光栅条纹图像的条纹彩色编码方法编码形成的彩色条纹图。
图3b是将图2a投影在被测物体上时,用彩色CCD采集得到的图像。
图3c是对图2b进行彩色图像分割后得到的二值化图像。
图4是基于格雷编码原理的光栅条纹图像的条纹彩色编码方法编码形成的各彩色条纹的编号示意图。
图5是将基于格雷编码原理的光栅条纹图像的条纹彩色编码方法编码形成的各彩色条纹用黑白格纹代表及其对应编号的示意图。
具体实施方式
下面结合附图示对本发明的具体实施方式作进一步描述。根据上述方法,在Windows操作系统中通过VC++6.0平台用C++编程实现了基于格雷编码原理的光栅条纹图像的条纹彩色编码方法的操作。
投影彩色光栅具有测量速度快的优点,就是因为彩色图像比灰度图像包含了更多的信息,使用的颜色越多,可同时包含的信息量也越大,因此,应该尽可能选择更多的颜色进行编码,但是所使用的颜色要在对光栅图像进行处理时易于辨别,才能正确提取其中包含的信息。因此要在保证动态性能的同时提高测量精度和准确度,选择进行彩色条纹编码使用的颜色时,要平衡这两方面因素的影响。采用对24位真彩图像三个分量R、G、B分别赋值实现,24位真彩图像的R、G、B分量分别是8位,有256个灰阶,把每个分量只取0和255两个值,并将灰阶255时为1,灰阶0时为0,这样R、G、B分量的取值分别为0或1,这三个分量有8种组合且分别代表八种纯色:黑色为000、蓝色为001、绿色为010、青色为011、红色为100、品色为101、黄色为110、白色为111,选用八种纯色中最不易受到光照等因素的影响或者最不易与其它颜色发生干扰而难以正确解码的六种颜色进行彩色条纹编码,所述的六种颜色为蓝色001,黑色000,红色100,黄色110,白色111和品色101。同时,格雷编码原则必然限制颜色间的相邻关系,只有满足条件的颜色才可以相邻,在此基础上考虑用于进行彩色条纹编码的颜色数目和彩色条纹组合对编码长度的影响,只要对选定的六种颜色进行合理的彩色条纹编码,就能够满足投影光栅的需要,并且使其满足编码周期起始位置任意的条件;为了唯一确定绝对相位,需要设计唯一的条纹序列,这就是彩色条纹编码问题。我们利用六种不易发生相互干扰的纯色按照格雷编码原理排列解决码间干扰的问题,利用组合编码,编写颜色条纹组合序列唯一且编码周期起始位置任意的条纹编码,得到序列周期唯一的彩色条纹光栅。
本发明流程图如图1所示,具体实现步骤如下:
步骤1:列出八种纯色:采用对24位真彩图像三个分量R、G、B分别赋值实现,24位真彩图像的R、G、B分量分别是8位,有256个灰阶,把每个分量只取0和255两个值,并将灰阶255时为1,灰阶0时为0,这样R、G、B分量的取值分别为0或1,这三个分量有8种组合且分别代表八种纯色:黑色为000、蓝色为001、绿色为010、青色为011、红色为100、品色为101、黄色为110、白色为111,
步骤2:选择彩色条纹颜色、数目,并为彩色条纹编号:参照图2可知,八种纯色中,绿色和青色易受到光照等因素的影响而受到其它颜色的干扰,对彩色CCD采集到的图像进行彩色图像分割处理后,绿色和青色条纹难以得到连续正确的条纹边界,难以正确辨识,从而会导致难以正确解码,其中绿色易被黄色干扰,青色易被白色干扰,而其它六种颜色就不易受到光照等因素的影响且不易与其它颜色发生干扰而难以正确解码,所述的六种颜色为蓝色001,黑色000,红色100,黄色110,白色111和品色101,参照图3可知,用这六种颜色编码得到的条纹,就克服了由于光照等因素的影响造成的码间干扰问题,依次将蓝色001条纹,黑色000条纹,红色100条纹,黄色110条纹,白色111条纹和品色101条纹的编号记为I、II、III、IV、V及VI,
步骤3:确定编码周期,并列出长度为此编码周期的所有可能的彩色条纹编码组合:以4个彩色条纹为编码周期,根据步骤2中设定的编号,满足格雷编码且编码周期为4个彩色条纹的所有可能的彩色条纹编码组合为:
I II I II,I II III II,I II III IV,
II I II I,II I IIIII,II III II I,II III II III,II III IV III,II III IV V,
III II I II,III II III II,III II III IV ,III IV III II,III IV III IV ,III IV V IV,III IV V VI,
IV III II I,IV III II III,IV III IV III,IV V IV III,IV III IV V,IV V IV V,IV V VI V,
V IV III II,V IV III IV ,V IV V IV,V IV V VI,V VI V IV,V VI V VI,
VI V IV III,VI V IV V,VI V VI V,
所述的格雷编码的性质为,每个编码与其相邻编码相比只有一位数字不同,
步骤4:确定各个编码周期的彩色条纹编码:
步骤4.1:将步骤3中列出的所有可能的彩色条纹编码组合作为待选区,从中取彩色条纹编码组合I II III IV作为第1个编码周期,并在待选区中删除此彩色条纹编码组合,形成第1待选区,
步骤4.2:从第1待选区选择出前3个彩色条纹与第1个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III IV III和II III IV V,随机选取II III IV V作为第2个编码周期,并在第1待选区中删除此彩色条纹编码组合,形成第2待选区,
步骤4.3:从第2待选区选择出前3个彩色条纹与第2个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV V IV和III IV V VI,随机选取III IV V VI作为第3个编码周期,并在第2待选区中删除此彩色条纹编码组合,形成第3待选区,
步骤4.4:从第3待选区选择出前3个彩色条纹与第3个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V VI V作为第4个编码周期,并在第3待选区中删除此彩色条纹编码组合,形成第4待选区,
步骤4.5:从第4待选区选择出前3个彩色条纹与第4个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V VI V IV和V VI V VI,随机选取V VI V VI作为第5个编码周期,并在第4待选区中删除此彩色条纹编码组合,形成第5待选区,
步骤4.6:从第5待选区选择出前3个彩色条纹与第5个编码周期中的后3个彩色条纹相同的彩色条纹编码组合VI V VI V作为第6个编码周期,并在第5待选区中删除此彩色条纹编码组合,形成第6待选区,
步骤4.7:从第6待选区选择出前3个彩色条纹与第6个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V VI V IV作为第7个编码周期,并在第6待选区中删除此彩色条纹编码组合,形成第7待选区,
步骤4.8:从第7待选区选择出前3个彩色条纹与第7个编码周期中的后3个彩色条纹相同的彩色条纹编码组合VI V IV III和VI V IV V,随机选取VI V IV III作为第8个编码周期,并在第7待选区中删除此彩色条纹编码组合,形成第8待选区,
步骤4.9:从第8待选区选择出前3个彩色条纹与第8个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IV III II和V IV III IV,随机选取V IV III II作为第9个编码周期,并在第8待选区中删除此彩色条纹编码组合,形成第9待选区,
步骤4.10:从第9待选区选择出前3个彩色条纹与第9个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III II I和IV III II III,随机选取IV III II I作为第10个编码周期,并在第9待选区中删除此彩色条纹编码组合,形成第10待选区,
步骤4.11:从第10待选区选择出前3个彩色条纹与第10个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II I II作为第11个编码周期,并在第10待选区中删除此彩色条纹编码组合,形成第11待选区,
步骤4.12:从第11待选区选择出前3个彩色条纹与第11个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II I II I和II I II III,随机选取II I II I作为第12个编码周期,并在第11待选区中删除此彩色条纹编码组合,形成第12待选区,
步骤4.13:从第12待选区选择出前3个彩色条纹与第12个编码周期中的后3个彩色条纹相同的彩色条纹编码组合I II I II作为第13个编码周期,并在第12待选区中删除此彩色条纹编码组合,形成第13待选区,
步骤4.14:从第13待选区选择出前3个彩色条纹与第13个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II I II III作为第14个编码周期,并在第13待选区中删除此彩色条纹编码组合,形成第14待选区,
步骤4.15:从第14待选区选择出前3个彩色条纹与第14个编码周期中的后3个彩色条纹相同的彩色条纹编码组合I II III II作为第15个编码周期,并在第14待选区中删除此彩色条纹编码组合,形成第15待选区,
步骤4.16:从第15待选区选择出前3个彩色条纹与第15个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III II I和II III II III,随机选取II III II I作为第16个编码周期,并在第15待选区中删除此彩色条纹编码组合,形成第16待选区,
步骤4.17:从第16待选区选择前3个彩色条纹与第16个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第16待选区中没有这样的彩色条纹编码组合,且第16待选区不为空,则重新选择第16个编码周期,从步骤4.16中选出的两个彩色条纹编码组合II III II I和II III II III中选取II III II III作为第16个编码周期,并在第15待选区中删除此彩色条纹编码组合,形成第17待选区,
步骤4.18:从第17待选区选择出前3个彩色条纹与第16个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II III II和III II III IV,随机选取III II III IV作为第17个编码周期,并在第17待选区中删除此彩色条纹编码组合,形成第18待选区,
步骤4.19:从第18待选区选择出前3个彩色条纹与第17个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III IV III作为第18个编码周期,并在第17待选区中删除此彩色条纹编码组合,形成第19待选区,
步骤4.20:从第19待选区选择出前3个彩色条纹与第18个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV III II和III IV III IV,随机选取III IV III IV作为第19个编码周期,并在第19待选区中删除此彩色条纹编码组合,形成第20待选区,
步骤4.21:从第20待选区选择出前3个彩色条纹与第19个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III IV III和IV III IV V,随机选取IV III IV V作为第20个编码周期,并在第20待选区中删除此彩色条纹编码组合,形成第21待选区,
步骤4.22:从第21待选区选择出前3个彩色条纹与第20个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV V IV作为第21个编码周期,并在第21待选区中删除此彩色条纹编码组合,形成第22待选区,
步骤4.23:从第22待选区选择出前3个彩色条纹与第21个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V IV III和IV III IV V,随机选取IV V IV V作为第22个编码周期,并在第22待选区中删除此彩色条纹编码组合,形成第23待选区,
步骤4.24:从第23待选区选择出前3个彩色条纹与第22个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IV V IV和V IV V VI,随机选取V IVV VI作为第23个编码周期,并在第23待选区中删除此彩色条纹编码组合,形成第24待选区,
步骤4.25:从第24待选区选择前3个彩色条纹与第23个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第24待选区中没有这样的彩色条纹编码组合,且第24待选区不为空,则重新选择第23个编码周期,从步骤4.24中选出的两个彩色条纹编码组合V IV V IV和V IV V VI中选取V IV V IV作为第23个编码周期,并在第23待选区中删除此彩色条纹编码组合,形成第25待选区,
步骤4.26:从第25待选区选择出前3个彩色条纹与第23个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV V IV III作为第24个编码周期,并在第25待选区中删除此彩色条纹编码组合,形成第26待选区,
步骤4.27:从第26待选区选择出前3个彩色条纹与第24个编码周期中的后3个彩色条纹相同的彩色条纹编码组合V IV III IV作为第25个编码周期,并在第26待选区中删除此彩色条纹编码组合,形成第27待选区,
步骤4.28:从第27待选区选择出前3个彩色条纹与第25个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III IV III作为第26个编码周期,并在第27待选区中删除此彩色条纹编码组合,形成第28待选区,
步骤4.29:从第28待选区选择出前3个彩色条纹与第26个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III IV III II作为第27个编码周期,并在第28待选区中删除此彩色条纹编码组合,形成第29待选区,
步骤4.30:从第29待选区选择出前3个彩色条纹与第27个编码周期中的后3个彩色条纹相同的彩色条纹编码组合IV III II III作为第28个编码周期,并在第29待选区中删除此彩色条纹编码组合,形成第30待选区,
步骤4.31:从第30待选区选择出前3个彩色条纹与第28个编码周期中的后3个彩色条纹相同的彩色条纹编码组合III II III II作为第29个编码周期,并在第30待选区中删除此彩色条纹编码组合,形成第31待选区,
步骤4.32:从第31待选区选择出前3个彩色条纹与第29个编码周期中的后3个彩色条纹相同的彩色条纹编码组合II III II I作为第30个编码周期,并在第31待选区中删除此彩色条纹编码组合,形成第32待选区,
步骤4.33:从第32待选区选择前3个彩色条纹与第30个编码周期中的后3个彩色条纹相同的彩色条纹编码组合,发现第32待选区中没有这样的彩色条纹编码组合,且第32待选区中只剩下两个彩色条纹编码组合,小于五个,此时编码结束,
最终得到序列周期唯一的光栅条纹图像的彩色条纹编码,如图4和图5所示,所得到的彩色条纹编码用彩色条纹的编号表示如下:
I II II IV V VI V VI V IV III II I II I II III II III IV IIIIV V IV V IV III IV III II III II I。