4位格雷码的顺序编码_格雷码编码 解码 实现(Python)

本文详细介绍了格雷码编码的优势,包括减少解码错误概率,并对比了二值码的不足。通过递归生成和二值码转换方法阐述了4位格雷码的生成过程。此外,还讨论了格雷码在实际应用中的投影和解码问题,包括全局/局部灰度阈值法和多幅图像阈值法解码策略。
摘要由CSDN通过智能技术生成

作者:曹博

01 二值码

02 格雷码编码

2.1 编码优点

2.2 编码生成

2.3 递归生成

2.4 二值码转换

2.5 编码图

03 格雷码投影

3.1 投影图案生成

3.2 DLP投影图像

04 格雷码解码

4.1 全局/局部灰度阈值法

4.2 多幅图像阈值法

4.3 特殊情况

05 参考文献

01 二值码

先来说结构光中最简单的情况,时域上的编码,由于极线约束的关系,我们只需要在单方向上进行编码即可,我们以最简单的两灰度级三位二进制码为例,这里有个区域,其中亮区域对应编码1,暗区域对应编码0,假设现在我们向被测物顺序投射三幅二进制编码图案,如下所示:

212588885_1_20210111080614541

图1 二进制码的编码与解码原理

现在,对于这些区域,对应的编码如下:

212588885_2_20210111080614588

这些区域都被我们编码起来了,没毛病!但是这样的编码虽然很简单,但是存在问题!如果和格雷码一比,你一定一眼就可以发现。

02 格雷码编码

2.1 编码优点二进制编码缺点:相邻区域的编码的位数变化太多了!

那这会带来什么问题?当然,在相机拍照清晰的情况下,这种编码方式当然不会出现任何问题。但问题就出现在,相机拍摄到的黑白相间的边界点往往是一个过渡灰度,很容易导致解码错误(0->1 or 1->0),这是自然二进制编码解码最容易出错的点。而格雷码最大的特定是相邻数字编码只相差一位,它们的对比如下所示:

212588885_3_20210111080614650

这有什么优点呢?格雷码出错的概率更小,因为相邻区域的编码只有一位差异,有两种情况,假设编码只有一位差异,这一位错误编码出现在:非差异位:对这类编码错误,我们完全可以进行补救,因为相邻两个像素的编码应该是大部分相同的,我们可以对相邻两个像素的编码进行纠正,而二进制码可没有这个编码纠正机制;

差异位:那无非是差一个像素而已,这时候我们无法区分这两块区域;

举个例子,对001(1)区域,它最容易出现错误的区域是黑白相间的边界处,错误的编码:011:二值码:3区域,差2个像素;

格雷码:2区域,差1个像素,

另外,在编码的最后一幅图像里,条纹都是非常细的,以上面3位编码为例,查看编码最后位,如果是:二值码:01010101

格雷码:01100110

由于漫反射的原因,通常容易出错的地方是黑白交错的区域解码,当条纹在最后一幅很细的时候,明显格雷码编码条纹更粗,可能出错的地方更少。

不论你是否理解,格雷码的主要优点就在于可以减小解码过程中的错误率,当然它依然有二值码一样的缺点,主要在于在选取位数较多的时候,最后几幅图的格雷码条纹会非常细,不容易分辨,因而我们通常只选取4位格雷码进行编码。这样的处理精度并不高,这也是后面我们结合相移法来进行编码、解码的主要原因。补充:格雷码的其他应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值