以5位格雷码为例,5位格雷码可以对32个像素位置进行编码,由之前的文章可以知道,我们在计算结构光三维重建时,只需要对结构光图片的一个方向编码,以常见的列格雷码为例,如图所示是5位列格雷码编码图片集。
图中我们对每个像素点进行了格雷码编码,每一张图片都代表了格雷码的某一位,以图片第1列为例,其格雷码编码为00001,则前4张图片中第一列的的格雷码编码的条纹都是黑色,代表0,而最后一张图世槐片第一列的格雷码编码是白色,代表1.
格雷码的解码很简单,只要把投影的格雷码结构光再还原回十进制数字,我们就能知道相机中的像素点(uc,vc)搜租友对应的是投影图片的哪一列(up)了。想要得到一个好的三维重建结果,主要是对相机捕捉到的结构光进行准确的二值化 *** 作,使得相机图片中每个像素点都能够正确解码。
常见的二值化 *** 作有很多,最简单的是设一个全局灰度阈值,对灰度值高于阈值的像素点置1,对灰度值低于阈值的像素点置0。 或者利用局部自适应阈值对图片进行二值化 *** 作等·。常见的利用每个像素点周边灰度信息的二值化 *** 作,往往不能够满足格雷码结构光解码的二值化需求。因为使用结构光的环境往往是未知且复杂的。比如同样的结构光光强照在黑色物体表面的亮度比照射在白色物体表面的亮度要低。这意味着同样的光条纹在不同物体上获取的灰度值不同。由于不能提前预知环境中的物体表面信息,仅仅靠简单的利用像素点及其周周围灰度值的分布得出该像素点当前是来自结构光的亮条纹还是暗条纹是及其不准确的。
虽然由于环境光,以及物体表面材质的原因,一幅图像中像素的亮度(灰度值)通常是不均匀的,无法直接利用一张图片呈现的灰度信息对结构光解码,但是我们可以利用结构光系列图片来帮助获取像素点当前是亮条纹还是暗条纹的信息。以上图的格雷码编码为例,一个5位的格雷码编码需要投影5张结构光图片,假设有一个编码为 11011的格雷码条纹打在物体表面上,,在连续投影的5张格雷码图片中,物体表面被编码照射的位置既经历过暗条纹(编码为0)又经历过亮条纹(编码为1)。不过由于每张格雷码编码图片的光源编码不同,而且结构光光源在物体表面上形成的漫反射不同,当结构光编码图片不一样时,即使是同样经历亮条纹照射,该位置的亮度(灰度值)也是不同的。总的来说,对于同一个位置,可以近似认为其被亮条纹照射到的亮度总是高于其被暗条纹照射到的亮度。那么对于一个像素点在一张图片中的二值化可以用如下方法。
土壤表面粗糙度是表征土壤水文特性和影响土壤性质的重要参数。它与土壤水分渗入速率、地表径、地表积水以及土壤侵蚀、土壤孔隙率等因素相关。通过结构光对被测物体进行三维凯举测量,获取被测物体各离散点的三维位置信息,并通过采集得到调制后尺余的结构光图像,对该图像进行结构光编码、解码计算出被测物体表面离散各点在参考坐标系的位置,进而获得所测量的土壤表面粗糙度,可以实现简单、快速并且精确地计算出土壤表面的粗糙度。
一般土壤的粗糙度可由均方根陵孙滚高度和自相关长度来表示,可通过表面各点的相对水平高程或各点相对最低点的水平高程来计算出的样方土上多个目标点相对于水平基准面板10上各个点的坐标参数信息,获得所要测量的样方土的土壤表面粗糙度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)