CN108931209B - 一种高适应性的彩色物体三维重建方法 - Google Patents
一种高适应性的彩色物体三维重建方法 Download PDFInfo
- Publication number
- CN108931209B CN108931209B CN201810417977.1A CN201810417977A CN108931209B CN 108931209 B CN108931209 B CN 108931209B CN 201810417977 A CN201810417977 A CN 201810417977A CN 108931209 B CN108931209 B CN 108931209B
- Authority
- CN
- China
- Prior art keywords
- marry
- dif1
- cam
- matrix
- stru
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 84
- 101100285518 Drosophila melanogaster how gene Proteins 0.000 claims description 51
- 238000001914 filtration Methods 0.000 claims description 27
- 238000013461 design Methods 0.000 claims description 9
- 239000003086 colorant Substances 0.000 claims description 5
- 238000009499 grossing Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 241000526960 Amaranthus acanthochiton Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/24—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
- G01B11/25—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/24—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
- G01B11/25—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
- G01B11/2509—Color coding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本发明涉及一种高适应性的彩色物体三维重建方法,其特征在于:相机和投影仪固定在三脚支架上,并通过电缆将相机与计算机进行连接,通过电缆将投影仪与计算机进行连接;利用计算机生成一幅彩色编码结构光图案,并进行多源时序化分层处理,接着对多源时序化分层图案进行解码处理,组合得到调制的单幅彩色编码结构光图案,接着利用条纹匹配方法实现对编码特征点的匹配,最后利用三角测量方法实现编码特征点的三维深度信息值解算。实现类似单幅彩色编码结构光实现过程,而且在一定程度上减少了投影仪投射的编码图案数量。
Description
技术领域
本发明涉及一种高适应性的彩色物体三维重建方法,属于计算机视觉技术领域。
背景技术
结构光三维重建方法是一种利用投影仪和相机实现的主动式三维测量技术,其通过投影仪投射事先设计的编码图案到待测物体表面上,由于待测物体表面几何拓扑结构对投影仪投射的图案产生调制变形,此时利用相机对调制图案进行采集,再结合相应的解码方法以及系统参数,即可确定待测物体表面上的点在空间中的深度信息值。通过结构光三维重建技术能够对物体进行高精度重建、无接触测量,其已经成为目前的三维自由曲面测量的重要方法之一。目前随着虚拟现实技术的快速发展,结构光三维重建技术为3D打印、体感交互设备、三维影视模型构造等许多行业都提供了技术支持。
随着三维重建技术的快速发展,国内外研究学者针对结构三维重建技术进行了一系列研究,其中Inokuchi等人考虑到格雷码凭借着发射特性使得相邻码字在解码过程中出错率低,为此提出了通过将二值编码方法结合格雷码方法进行编码图案设计;随后,Caspi等人对其方法进行了相应改进,提出了多值格雷码方法,虽然其在一定程度上减少了投射编码图案的数量,但是编码图案相对而言还是较多;为此Boyer等人提出了一种利用黑色条纹对三原色条纹(红色条纹、绿色条纹、蓝色条纹)的组合编码图案进行隔离,从而实现具有单幅编码图案,虽然该方法能够快速重建待测物体,但是却存在着解码过程复杂、同时伴随着待测物体复杂性而导致解码错误率高的问题。为此在单幅编码结构光图案研究中,Salvi等提出了水平方向和竖直方向进行交叉条纹编码设计单幅栅格图案,其通过利用三原色对水平方向进行组合编码,而在竖直方向则利用青黄深红色进行编码设计。与此同时,Antonio等人提出了一种利用七种颜色进行无序彩色编码方法设计,其通过将编码特征点替换轴线进行编码设计,实现对动态待测物体进行快速测量。虽然单幅彩色编码结构光能够快速的对待测物体进行三维重建,但是这类方法面临着一类问题,就是当待测物体的表面纹理对彩色编码颜色码产生严重干扰时,会使得单幅彩色编码结构光三维重建方法失效,而此时如果利用多幅格雷码等方法进行三维重建时,会存在着投影仪投射编码图案较多的问题。
发明内容
为了避免待测的彩色物体表面纹理色彩信息对彩色编码结构光的颜色码信息产生干扰的问题,以及减少投影仪投射编码图案数量,本发明的目的在于提供一种高适应性的彩色物体三维重建方法,其首先利用计算机生成一幅彩色编码结构光图案,并进行多源时序化分层处理,接着对多源时序化分层图案进行解码处理,组合得到调制的单幅彩色编码结构光图案,接着利用条纹匹配方法实现对编码特征点的匹配,最后利用三角测量方法实现编码特征点的三维深度信息值解算。
本发明的技术方案是这样实现的:一种高适应性的彩色物体三维重建方法,其特征在于:相机和投影仪固定在三脚支架上,并通过电缆将相机与计算机进行连接,通过电缆将投影仪与计算机进行连接;
具体的重建步骤如下:
步骤1、多源时序分层投影编码图案的设计
步骤1.1、通过计算机对颜色码进行编码设计,选择的颜色分别为:红色(255,0,0)对应的编码序号为1,绿色(0,255,0)对应的编码序号为2,蓝色(0,0,255)对应的编码序号为3,青色(0,255,255)对应的编码序号为4,品红色(255,0,255)对应的编码序号为5,黄色(255,255,0)对应的编码序号为6,白色(255,255,255)对应的编码序号为7;利用De Bruijn的伪随机特性和颜色码序号进行生成一幅7元3级的彩色结构光条纹编码图像stru_col,其中图像stru_col的背景色为黑色信息值,彩色条纹的宽度值设定为6个像素,相邻条纹之间的间隔为3个像素,图像stru_col的分辨率为1024pixel×768pixel;
步骤1.2、利用openCV 2.4.10的split函数对图像stru_col进行分层处理得到三幅多源时序分层编码图像分别为stru_R,stru_G,stru_B;接着利用openCV 2.4.10中的函数cvtColor对图像stru_col进行灰度化处理得到图像stru_graysca,同时利用openCV2.4.10中的函数threshold对图像stru_graysca进行阈值和二值化的处理,得到多源时序分层编码图像stru_W,该图像只含有纯白色条纹背景为纯黑色的图像信息;
步骤2、通过计算机1将上述的多源时序分层编码图像stru_W、stru_R,stru_G,stru_B传递给投影仪4进行依次投射到待测彩色物体5的表面上,并通过相机3对待测彩色物体5表面上的调制图案信息进行采集依次得到调制图像cam_W、cam_R,cam_G,cam_B;接着关闭投影仪4,利用相机3采集待测彩色物体5的纹理色彩信息,得到背景图像back_obj;
步骤3、利用openCV 2.4.10的subtract函数依次将调制图像cam_W、cam_R,cam_G,cam_B分别与与背景图像back_obj进行差值运算,得到背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB;
步骤4、将背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB中的像素点按照从上到下,从左到右的顺序分别存储在矩阵cam_marryW,cam_marryR,cam_marryG,cam_marryB中,这些矩阵大小都为N行,M列;
步骤5、在矩阵cam_marryW中的第i行,第j列矩阵值cam_marryW(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mwr(i,j)、mwg(i,j)、mwb(i,j),即cam_marryW(i,j)=(mwr(i,j),mwg(i,j),mwb(i,j));
利用公式
dif1_WR(i,j)=mwr(i+1,j)-mwr(i-1,j)+mwr(i+2,j)-mwr(i-2,j);
dif1_WG(i,j)=mwg(i+1,j)-mwg(i-1,j)+mwg(i+2,j)-mwg(i-2,j);,
dif1_WB(i,j)=mwb(i+1,j)-mwb(i-1,j)+mwb(i+2,j)-mwb(i-2,j);
对背景差值图像cam_diffW进行一阶差分处理,得到在R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)和dif1_WB(i,j);
接着利用公式,
g_marry(i,j)=dif1_WR(i,j)^2+dif1_WG(i,j)^2+dif1_WB(i,j)^2
对R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)、dif1_WB(i,j)进行平方和处理,得到三通道的一阶滤波差分平滑和矩阵g_marry(i,j);
利用公式
dif1_gm(i,j)=g_marry(i,j)(i+1,j)-g_marry(i,j)(i-1,j)+g_marry(i,j)(i+2,j)-g_marry(i,j)(i-2,j);
dif2_gm(i,j)=dif1_gm(i,j)(i+1,j)-dif1_gm(i,j)(i-1,j)+dif1_gm(i,j)(i+2,j)-dif1_gm(i,j)(i-2,j);
求解矩阵g_marry(i,j)的一阶差分矩阵dif1_gm(i,j)和二阶差分矩阵dif2_gm(i,j),为了能够对调制条纹的中心线进行提取,对矩阵dif1_gm(i,j)和dif2_gm(i,j)中的值进行判断,定义矩阵CI_marry;
当满足(dif1_gm(i-1,j)>0且dif1_gm(i+1,j)<0且dif2_gm(i,j)<0),或者满足(dif1_gm(i-1,j)<0且dif1_gm(i+1,j)>0且dif2_gm(i,j)<0)时,矩阵CI_marry(i,j)=(255,255,255),否则矩阵CI_marry(i,j)=(0,0,0);
步骤6、矩阵cam_marryR中的第i行,第j列矩阵值cam_marryR(i,j),中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mrr(i,j)、mrg(i,j)、mrb(i,j),即cam_marryR(i,j)=(mrr(i,j),mrg(i,j),mrb(i,j));矩阵cam_marryG中的第i行,第j列矩阵值cam_marryG(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mgr(i,j)、mgg(i,j)、mgb(i,j),即cam_marryG(i,j)=(mgr(i,j),mgg(i,j),mgb(i,j));矩阵cam_marryB中的第i行,第j列矩阵值cam_marryB(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mbr(i,j)、mbg(i,j)、mbb(i,j),即cam_marryB(i,j)=(mbr(i,j),mbg(i,j),mbb(i,j));
利用公式
YR_marry(i,j)=0.299*mrr(i,j)+0.587*mrg(i,j)+0.114*mrb(i,j);
YG_marry(i,j)=0.299*mgr(i,j)+0.587*mgg(i,j)+0.114*mgb(i,j);
YB_marry(i,j)=0.299*mbr(i,j)+0.587*mbg(i,j)+0.114*mbb(i,j);
得到在R通道、G通道、B通道中的亮度信息值矩阵YR_marry、YG_marry、YB_marry,定义矩阵Red_marry、Green_marry、Blue_marry,接着利用公式
dif1_yr(i,j)=YR_marry(i,j)(i+1,j)-YR_marry(i,j)(i-1,j)+YR_marry(i,j)(i+2,j)-YR_marry(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的一阶滤波差分矩阵dif1_yr,
dif2_yr(i,j)=dif1_yr(i,j)(i+1,j)-dif1_yr(i,j)(i-1,j)+dif1_yr(i,j)(i+2,j)-dif1_yr(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的二阶滤波差分矩阵dif2_yr,如果dif2_yr(i,j)>0,则Red_marry(i,j)=0;否则,Red_marry(i,j)=255;
同理,利用公式
dif1_yg(i,j)=YG_marry(i,j)(i+1,j)-YG_marry(i,j)(i-1,j)+YG_marry(i,j)(i+2,j)-YG_marry(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的一阶滤波差分矩阵dif1_yg,
dif2_yg(i,j)=dif1_yg(i,j)(i+1,j)-dif1_yg(i,j)(i-1,j)+dif1_yg(i,j)(i+2,j)-dif1_yg(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的二阶滤波差分矩阵dif2_yg,如果dif2_yg(i,j)>0,则Green_marry(i,j)=0;否则,Green_marry(i,j)=255;
同理,利用公式
dif1_yb(i,j)=YB_marry(i,j)(i+1,j)-YB_marry(i,j)(i-1,j)+YB_marry(i,j)(i+2,j)-YB_marry(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的一阶滤波差分矩阵dif1_yb,
dif2_yb(i,j)=dif1_yb(i,j)(i+1,j)-dif1_yb(i,j)(i-1,j)+dif1_yb(i,j)(i+2,j)-dif1_yb(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的二阶滤波差分矩阵dif2_yb,如果dif2_yb(i,j)>0,则Blue_marry(i,j)=0;否则,Blue_marry(i,j)=255;
步骤7、当CI_marry(i,j)=255时,对矩阵Red_marry、Green_marry、Blue_marry中的值对矩阵CI_marry进行重新赋值,即CI_marry(i,j)=(Red_marry(i,j),Green_marry(i,j),Blue_marry(i,j));
步骤8、通过步骤2到步骤7即可得到编码彩色结构光条纹图案在理论上对应的调制条纹图像对应矩阵CI_marry;
步骤9、利用基于彩色结构光的匹配方法对矩阵CI_marry和图像stru_col对应的矩阵stru_marry进行匹配确认点的唯一性,接着利用结构光的三角测量原理对匹配完的点进行三维信息值解算,从而实现对彩色物体的三维重建。
本发明的积极效果是避免了彩色物体对彩色编码结构光图案产生颜色码干扰,以及减少投影仪投射的编码图案,通过对单幅彩色编码结构光图案进行时序分层处理,得到4幅只具有黑白颜色码图案信息,然后在解码过程中,将上述调制的时序分层图案进行解码组合构建成调制的彩色编码图案,从而实现类似单幅彩色编码结构光实现过程,而且在一定程度上减少了投影仪投射的编码图案数量。
附图说明
图1为发明的结构示意图,其中计算机1、三脚支架2、相机3、投影仪4、待测彩色物体5。
具体实施方式
下面结合附图对本发明做进一步的描述:如图1所示,为一种高适应性的彩色物体三维重建方法,其中计算机1、三脚支架2、相机3、投影仪4、待测彩色物体5;其中相机3和投影仪4固定在三脚支架2上,并通过电缆将相机3与计算机1进行连接,通过电缆将投影仪3与计算机1进行连接。
步骤1、多源时序分层投影编码图案的设计
步骤1.1、通过计算机对颜色码进行编码设计,选择的颜色分别为:红色(255,0,0)对应的编码序号为1,绿色(0,255,0)对应的编码序号为2,蓝色(0,0,255)对应的编码序号为3,青色(0,255,255)对应的编码序号为4,品红色(255,0,255)对应的编码序号为5,黄色(255,255,0)对应的编码序号为6,白色(255,255,255)对应的编码序号为7;利用De Bruijn的伪随机特性和颜色码序号进行生成一幅7元3级的彩色结构光条纹编码图像stru_col,其中图像stru_col的背景色为黑色信息值,彩色条纹的宽度值设定为6个像素,相邻条纹之间的间隔为3个像素,图像stru_col的分辨率为1024pixel×768pixel;
步骤1.2、利用openCV 2.4.10的split函数对图像stru_col进行分层处理得到三幅多源时序分层编码图像分别为stru_R,stru_G,stru_B;接着利用openCV 2.4.10中的函数cvtColor对图像stru_col进行灰度化处理得到图像stru_graysca,同时利用openCV2.4.10中的函数threshold对图像stru_graysca进行阈值和二值化的处理,得到多源时序分层编码图像stru_W,该图像只含有纯白色条纹背景为纯黑色的图像信息;
步骤2、通过计算机1将上述的多源时序分层编码图像stru_W、stru_R,stru_G,stru_B传递给投影仪4进行依次投射到待测彩色物体5的表面上,并通过相机3对待测彩色物体5表面上的调制图案信息进行采集依次得到调制图像cam_W、cam_R,cam_G,cam_B;接着关闭投影仪4,利用相机3采集待测彩色物体5的纹理色彩信息,得到背景图像back_obj;
步骤3、利用openCV 2.4.10的subtract函数依次将调制图像cam_W、cam_R,cam_G,cam_B分别与与背景图像back_obj进行差值运算,得到背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB;
步骤4、将背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB中的像素点按照从上到下,从左到右的顺序分别存储在矩阵cam_marryW,cam_marryR,cam_marryG,cam_marryB中,这些矩阵大小都为N行,M列;
步骤5、在矩阵cam_marryW中的第i行,第j列矩阵值cam_marryW(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mwr(i,j)、mwg(i,j)、mwb(i,j),即cam_marryW(i,j)=(mwr(i,j),mwg(i,j),mwb(i,j));
利用公式
dif1_WR(i,j)=mwr(i+1,j)-mwr(i-1,j)+mwr(i+2,j)-mwr(i-2,j);
dif1_WG(i,j)=mwg(i+1,j)-mwg(i-1,j)+mwg(i+2,j)-mwg(i-2,j);,
dif1_WB(i,j)=mwb(i+1,j)-mwb(i-1,j)+mwb(i+2,j)-mwb(i-2,j);
对背景差值图像cam_diffW进行一阶差分处理,得到在R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)和dif1_WB(i,j);
接着利用公式,
g_marry(i,j)=dif1_WR(i,j)^2+dif1_WG(i,j)^2+dif1_WB(i,j)^2
对R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)、dif1_WB(i,j)进行平方和处理,得到三通道的一阶滤波差分平滑和矩阵g_marry(i,j);
利用公式
dif1_gm(i,j)=g_marry(i,j)(i+1,j)-g_marry(i,j)(i-1,j)+g_marry(i,j)(i+2,j)-g_marry(i,j)(i-2,j);
dif2_gm(i,j)=dif1_gm(i,j)(i+1,j)-dif1_gm(i,j)(i-1,j)+dif1_gm(i,j)(i+2,j)-dif1_gm(i,j)(i-2,j);
求解矩阵g_marry(i,j)的一阶差分矩阵dif1_gm(i,j)和二阶差分矩阵dif2_gm(i,j),为了能够对调制条纹的中心线进行提取,对矩阵dif1_gm(i,j)和dif2_gm(i,j)中的值进行判断,定义矩阵CI_marry;
当满足(dif1_gm(i-1,j)>0且dif1_gm(i+1,j)<0且dif2_gm(i,j)<0),或者满足(dif1_gm(i-1,j)<0且dif1_gm(i+1,j)>0且dif2_gm(i,j)<0)时,矩阵CI_marry(i,j)=(255,255,255),否则矩阵CI_marry(i,j)=(0,0,0);
步骤6、矩阵cam_marryR中的第i行,第j列矩阵值cam_marryR(i,j),中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mrr(i,j)、mrg(i,j)、mrb(i,j),即cam_marryR(i,j)=(mrr(i,j),mrg(i,j),mrb(i,j));矩阵cam_marryG中的第i行,第j列矩阵值cam_marryG(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mgr(i,j)、mgg(i,j)、mgb(i,j),即cam_marryG(i,j)=(mgr(i,j),mgg(i,j),mgb(i,j));矩阵cam_marryB中的第i行,第j列矩阵值cam_marryB(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mbr(i,j)、mbg(i,j)、mbb(i,j),即cam_marryB(i,j)=(mbr(i,j),mbg(i,j),mbb(i,j));
利用公式
YR_marry(i,j)=0.299*mrr(i,j)+0.587*mrg(i,j)+0.114*mrb(i,j);
YG_marry(i,j)=0.299*mgr(i,j)+0.587*mgg(i,j)+0.114*mgb(i,j);
YB_marry(i,j)=0.299*mbr(i,j)+0.587*mbg(i,j)+0.114*mbb(i,j);
得到在R通道、G通道、B通道中的亮度信息值矩阵YR_marry、YG_marry、YB_marry,定义矩阵Red_marry、Green_marry、Blue_marry,接着利用公式
dif1_yr(i,j)=YR_marry(i,j)(i+1,j)-YR_marry(i,j)(i-1,j)+YR_marry(i,j)(i+2,j)-YR_marry(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的一阶滤波差分矩阵dif1_yr,
dif2_yr(i,j)=dif1_yr(i,j)(i+1,j)-dif1_yr(i,j)(i-1,j)+dif1_yr(i,j)(i+2,j)-dif1_yr(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的二阶滤波差分矩阵dif2_yr,如果dif2_yr(i,j)>0,则Red_marry(i,j)=0;否则,Red_marry(i,j)=255;
同理,利用公式
dif1_yg(i,j)=YG_marry(i,j)(i+1,j)-YG_marry(i,j)(i-1,j)+YG_marry(i,j)(i+2,j)-YG_marry(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的一阶滤波差分矩阵dif1_yg,
dif2_yg(i,j)=dif1_yg(i,j)(i+1,j)-dif1_yg(i,j)(i-1,j)+dif1_yg(i,j)(i+2,j)-dif1_yg(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的二阶滤波差分矩阵dif2_yg,如果dif2_yg(i,j)>0,则Green_marry(i,j)=0;否则,Green_marry(i,j)=255;
同理,利用公式
dif1_yb(i,j)=YB_marry(i,j)(i+1,j)-YB_marry(i,j)(i-1,j)+YB_marry(i,j)(i+2,j)-YB_marry(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的一阶滤波差分矩阵dif1_yb,
dif2_yb(i,j)=dif1_yb(i,j)(i+1,j)-dif1_yb(i,j)(i-1,j)+dif1_yb(i,j)(i+2,j)-dif1_yb(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的二阶滤波差分矩阵dif2_yb,如果dif2_yb(i,j)>0,则Blue_marry(i,j)=0;否则,Blue_marry(i,j)=255;
步骤7、当CI_marry(i,j)=255时,对矩阵Red_marry、Green_marry、Blue_marry中的值对矩阵CI_marry进行重新赋值,即CI_marry(i,j)=(Red_marry(i,j),Green_marry(i,j),Blue_marry(i,j));
步骤8、通过步骤2到步骤7即可得到编码彩色结构光条纹图案在理论上对应的调制条纹图像对应矩阵CI_marry;
步骤9、利用基于彩色结构光的匹配方法对矩阵CI_marry和图像stru_col对应的矩阵stru_marry进行匹配确认点的唯一性,接着利用结构光的三角测量原理对匹配完的点进行三维信息值解算,从而实现对彩色物体的三维重建。
利用以上步骤可以实现对彩色物体的三维重建,本发明通过对原始编码彩色结构光进行多源时序分层处理得到自含有黑白颜色码信息值,从而避免了彩色物体纹理对颜色产生干扰的问题,通过接对多源时序化分层图案进行解码处理,组合得到调制的单幅彩色编码结构光图案,接着利用条纹匹配方法实现对编码特征点的匹配,最后利用三角测量方法实现编码特征点的三维深度信息值解算。
Claims (1)
1.一种高适应性的彩色物体三维重建方法,其特征在于:相机和投影仪固定在三脚支架上,并通过电缆将相机与计算机进行连接,通过电缆将投影仪与计算机进行连接;
具体的重建步骤如下:
步骤1、多源时序分层投影编码图案的设计
步骤1.1、通过计算机对颜色码进行编码设计,选择的颜色分别为:红色(255,0,0)对应的编码序号为1,绿色(0,255,0)对应的编码序号为2,蓝色(0,0,255)对应的编码序号为3,青色(0,255,255)对应的编码序号为4,品红色(255,0,255)对应的编码序号为5,黄色(255,255,0)对应的编码序号为6,白色(255,255,255)对应的编码序号为7;利用De Bruijn的伪随机特性和颜色码序号进行生成一幅7元3级的彩色结构光条纹编码图像stru_col,其中图像stru_col的背景色为黑色信息值,彩色条纹的宽度值设定为6个像素,相邻条纹之间的间隔为3个像素,图像stru_col的分辨率为1024pixel×768 pixel;
步骤1.2、利用openCV 2.4.10的split函数对图像stru_col进行分层处理得到三幅多源时序分层编码图像分别为stru_R,stru_G,stru_B;接着利用openCV 2.4.10中的函数cvtColor对图像stru_col进行灰度化处理得到图像stru_graysca,同时利用openCV2.4.10中的函数threshold对图像stru_graysca进行阈值和二值化的处理,得到多源时序分层编码图像stru_W,该图像只含有纯白色条纹背景为纯黑色的图像信息;
步骤2、通过计算机将上述的多源时序分层编码图像stru_W、stru_R,stru_G,stru_B传递给投影仪进行依次投射到待测彩色物体的表面上,并通过相机对待测彩色物体表面上的调制图案信息进行采集依次得到调制图像cam_W、cam_R,cam_G,cam_B;接着关闭投影仪,利用相机采集待测彩色物体的纹理色彩信息,得到背景图像back_obj;
步骤3、利用openCV 2.4.10的subtract函数依次将调制图像cam_W、cam_R,cam_G,cam_B分别与与背景图像back_obj进行差值运算,得到背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB;
步骤4、将背景差值图像cam_diffW、cam_diffR,cam_diffG,cam_diffB中的像素点按照从上到下,从左到右的顺序分别存储在矩阵cam_marryW,cam_marryR,cam_marryG,cam_marryB中,这些矩阵大小都为N行,M列;
步骤5、在矩阵cam_marryW中的第i行,第j列矩阵值cam_marryW(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mwr(i,j)、mwg(i,j)、mwb(i,j),即cam_marryW(i,j)=(mwr(i,j),mwg(i,j),mwb(i,j));
利用公式
dif1_WR(i,j)=mwr(i+1,j)-mwr(i-1,j)+mwr(i+2,j)-mwr(i-2,j);
dif1_WG(i,j)=mwg(i+1,j)-mwg(i-1,j)+mwg(i+2,j)-mwg(i-2,j);
dif1_WB(i,j)=mwb(i+1,j)-mwb(i-1,j)+mwb(i+2,j)-mwb(i-2,j);
对背景差值图像cam_diffW进行一阶差分处理,得到在R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)和dif1_WB(i,j);
接着利用公式,
g_marry(i,j)=dif1_WR(i,j)^2+dif1_WG(i,j)^2+dif1_WB(i,j)^2
对R,G,B三个通道下的一阶滤波差分dif1_WR(i,j),dif1_WG(i,j)、dif1_WB(i,j)进行平方和处理,得到三通道的一阶滤波差分平滑和矩阵g_marry(i,j);
利用公式
dif1_gm(i,j)=g_marry(i,j)(i+1,j)-g_marry(i,j)(i-1,j)+g_marry(i,j)(i+2,j)-g_marry(i,j)(i-2,j);
dif2_gm(i,j)=dif1_gm(i,j)(i+1,j)-dif1_gm(i,j)(i-1,j)+dif1_gm(i,j)(i+2,j)-dif1_gm(i,j)(i-2,j);
求解矩阵g_marry(i,j)的一阶差分矩阵dif1_gm(i,j)和二阶差分矩阵dif2_gm(i,j),为了能够对调制条纹的中心线进行提取,对矩阵dif1_gm(i,j)和dif2_gm(i,j)中的值进行判断,定义矩阵CI_marry;
当满足(dif1_gm(i-1,j)>0且dif1_gm(i+1,j)<0且dif2_gm(i,j)<0),或者满足(dif1_gm(i-1,j)<0且dif1_gm(i+1,j)>0且dif2_gm(i,j)<0)时,矩阵CI_marry(i,j)=(255,255,255),否则矩阵CI_marry(i,j)=(0,0,0);
步骤6、矩阵cam_marryR中的第i行,第j列矩阵值cam_marryR(i,j),中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mrr(i,j)、mrg(i,j)、mrb(i,j),即cam_marryR(i,j)=(mrr(i,j),mrg(i,j),mrb(i,j));矩阵cam_marryG中的第i行,第j列矩阵值cam_marryG(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mgr(i,j)、mgg(i,j)、mgb(i,j),即cam_marryG(i,j)=(mgr(i,j),mgg(i,j),mgb(i,j));矩阵cam_marryB中的第i行,第j列矩阵值cam_marryB(i,j),其中i=1,2,…N,j=1,2…M;其存储的R通道、G通道、B通道信息值分别为mbr(i,j)、mbg(i,j)、mbb(i,j),即cam_marryB(i,j)=(mbr(i,j),mbg(i,j),mbb(i,j));
利用公式
YR_marry(i,j)=0.299*mrr(i,j)+0.587*mrg(i,j)+0.114*mrb(i,j);
YG_marry(i,j)=0.299*mgr(i,j)+0.587*mgg(i,j)+0.114*mgb(i,j);
YB_marry(i,j)=0.299*mbr(i,j)+0.587*mbg(i,j)+0.114*mbb(i,j);
得到在R通道、G通道、B通道中的亮度信息值矩阵YR_marry、YG_marry、YB_marry,定义矩阵Red_marry、Green_marry、Blue_marry,接着利用公式
dif1_yr(i,j)=YR_marry(i,j)(i+1,j)-YR_marry(i,j)(i-1,j)+YR_marry(i,j)(i+2,j)-YR_marry(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的一阶滤波差分矩阵dif1_yr,
dif2_yr(i,j)=dif1_yr(i,j)(i+1,j)-dif1_yr(i,j)(i-1,j)+dif1_yr(i,j)(i+2,j)-dif1_yr(i,j)(i-2,j);
得到R通道下的亮度信息值矩阵YR_marry对应的二阶滤波差分矩阵dif2_yr,如果dif2_yr(i,j)>0,则Red_marry(i,j)=0;否则,Red_marry(i,j)=255;同理,利用公式
dif1_yg(i,j)=YG_marry(i,j)(i+1,j)-YG_marry(i,j)(i-1,j)+YG_marry(i,j)(i+2,j)-YG_marry(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的一阶滤波差分矩阵dif1_yg,
dif2_yg(i,j)=dif1_yg(i,j)(i+1,j)-dif1_yg(i,j)(i-1,j)+dif1_yg(i,j)(i+2,j)-dif1_yg(i,j)(i-2,j);
得到G通道下的亮度信息值矩阵YG_marry对应的二阶滤波差分矩阵dif2_yg,如果dif2_yg(i,j)>0,则Green_marry(i,j)=0;否则,Green_marry(i,j)=255;
同理,利用公式
dif1_yb(i,j)=YB_marry(i,j)(i+1,j)-YB_marry(i,j)(i-1,j)+YB_marry(i,j)(i+2,j)-YB_marry(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的一阶滤波差分矩阵dif1_yb,
dif2_yb(i,j)=dif1_yb(i,j)(i+1,j)-dif1_yb(i,j)(i-1,j)+dif1_yb(i,j)(i+2,j)-dif1_yb(i,j)(i-2,j);
得到B通道下的亮度信息值矩阵YB_marry对应的二阶滤波差分矩阵dif2_yb,如果dif2_yb(i,j)>0,则Blue_marry(i,j)=0;否则,Blue_marry(i,j)=255;
步骤7、当CI_marry(i,j)=255时,对矩阵Red_marry、Green_marry、Blue_marry中的值对矩阵CI_marry进行重新赋值,即CI_marry(i,j)=(Red_marry(i,j),Green_marry(i,j),Blue_marry(i,j));
步骤8、通过步骤2到步骤7即可得到编码彩色结构光条纹图案在理论上对应的调制条纹图像对应矩阵CI_marry;
步骤9、利用基于彩色结构光的匹配方法对矩阵CI_marry和图像stru_col对应的矩阵stru_marry进行匹配确认点的唯一性,接着利用结构光的三角测量原理对匹配完的点进行三维信息值解算,从而实现对彩色物体的三维重建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810417977.1A CN108931209B (zh) | 2018-05-04 | 2018-05-04 | 一种高适应性的彩色物体三维重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810417977.1A CN108931209B (zh) | 2018-05-04 | 2018-05-04 | 一种高适应性的彩色物体三维重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108931209A CN108931209A (zh) | 2018-12-04 |
CN108931209B true CN108931209B (zh) | 2019-12-31 |
Family
ID=64448542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810417977.1A Expired - Fee Related CN108931209B (zh) | 2018-05-04 | 2018-05-04 | 一种高适应性的彩色物体三维重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108931209B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109855605B (zh) * | 2018-12-14 | 2020-12-08 | 易思维(杭州)科技有限公司 | 一种光栅条纹图像投影序列的快速系统及方法 |
CN111023999B (zh) * | 2019-12-26 | 2020-12-01 | 北京交通大学 | 一种基于空间编码结构光的稠密点云生成方法 |
CN112767537B (zh) * | 2021-01-07 | 2023-06-16 | 华侨大学 | 一种基于rgb编码结构光的三维重建方法 |
CN112991516A (zh) * | 2021-03-08 | 2021-06-18 | 武汉大学 | 一种用于三维重建的纹理编码影像生成方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09218021A (ja) * | 1996-02-14 | 1997-08-19 | Topy Ind Ltd | カラー識別ターゲット |
JP4443722B2 (ja) * | 2000-04-25 | 2010-03-31 | 富士通株式会社 | 画像認識装置及び方法 |
US6603561B2 (en) * | 2001-02-20 | 2003-08-05 | Thomas D. Ditto | Chromatic diffraction range finder |
US7154613B2 (en) * | 2004-03-15 | 2006-12-26 | Northrop Grumman Corporation | Color coded light for automated shape measurement using photogrammetry |
CN100554869C (zh) * | 2007-07-11 | 2009-10-28 | 华中科技大学 | 一种基于彩色结构光的二维三频解相测量方法 |
CN201218726Y (zh) * | 2008-04-23 | 2009-04-08 | 哈尔滨理工大学 | 基于彩色结构光的文物三维重建装置 |
CN101673412B (zh) * | 2009-09-29 | 2011-07-27 | 浙江工业大学 | 结构光视觉成像系统的光模板匹配方法 |
CN101667303B (zh) * | 2009-09-29 | 2013-01-16 | 浙江工业大学 | 一种基于编码结构光的三维重建方法 |
CN101697233B (zh) * | 2009-10-16 | 2012-06-06 | 长春理工大学 | 一种基于结构光的三维物体表面重建方法 |
CN101840575B (zh) * | 2010-04-30 | 2012-01-11 | 长春理工大学 | 一种将De Bruijn彩色结构光图像转化为赋权有向图模型和赋权有向图模型简化方法 |
CN101853385A (zh) * | 2010-05-14 | 2010-10-06 | 长春理工大学 | 一种提取De Bruijn彩色结构光图像的中心彩色条纹的方法 |
CN102156877A (zh) * | 2011-04-01 | 2011-08-17 | 长春理工大学 | 一种基于聚类分析的颜色分类方法 |
CN102519394B (zh) * | 2011-11-18 | 2014-04-16 | 东南大学 | 一种高适应性彩色结构光三维测量方法 |
CN107421468B (zh) * | 2017-08-01 | 2019-10-29 | 深圳市易尚展示股份有限公司 | 彩色三维扫描系统及方法 |
-
2018
- 2018-05-04 CN CN201810417977.1A patent/CN108931209B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN108931209A (zh) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108931209B (zh) | 一种高适应性的彩色物体三维重建方法 | |
CN110686599B (zh) | 基于彩色格雷码结构光的三维测量方法、系统、装置 | |
CN109186476B (zh) | 一种彩色结构光三维测量方法、装置、设备及存储介质 | |
CN100554873C (zh) | 一种基于二维编码的三维形貌测量方法 | |
US6341016B1 (en) | Method and apparatus for measuring three-dimensional shape of object | |
CN104835158B (zh) | 基于格雷码结构光与极线约束的三维点云获取方法 | |
CN103868524B (zh) | 一种基于散斑图案的单目测量系统标定方法及装置 | |
CN101504277B (zh) | 一种光学三维传感获取物体三维图像的方法 | |
CN104197861B (zh) | 基于结构光灰度向量的三维数字成像方法 | |
CN101871773B (zh) | 同步色相相移转换方法以及其三维形貌量测系统 | |
CN106997581A (zh) | 一种利用深度学习重建高光谱图像的方法 | |
CN100449258C (zh) | 基于二维彩色光编码的实时三维视觉系统 | |
CN108332670B (zh) | 一种融合rgb通道正反格雷码及条纹块平移的结构光系统编码方法 | |
CN113129430B (zh) | 基于双目结构光的水下三维重建方法 | |
CN105844633A (zh) | 基于De序列和相位编码的单帧结构光深度获取方法 | |
CN107516333B (zh) | 自适应De Bruijn彩色结构光编码方法 | |
CN112697071B (zh) | 一种基于DenseNet阴影补偿的彩色结构光投影三维测量方法 | |
CN110779454B (zh) | 基于双通道结构散斑互相关算法的改进数字图像相关方法 | |
KR102229861B1 (ko) | 저채널 라이다와 스테레오 카메라를 이용한 깊이 추정 장치 및 방법 | |
CN111023994B (zh) | 一种基于多重测量的光栅三维扫描方法及系统 | |
CN109798978B (zh) | 一种采用异形蓝色噪声编码孔径的光谱成像方法 | |
CN101840575B (zh) | 一种将De Bruijn彩色结构光图像转化为赋权有向图模型和赋权有向图模型简化方法 | |
CN103297703A (zh) | 多光谱图像获取方法 | |
CN108683918B (zh) | 基于彩色结构光的多源时序分层编码方法 | |
CN104217446A (zh) | 一种基于边缘检测的彩色结构光解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |