映射关系确定方法、装置、可读存储介质及计算机设备转让专利

申请号 : CN202010937933.9

文献号 : CN111932686B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 汪阅冬张召世朱能胜乐敏徐辉宇

申请人 : 南昌虚拟现实研究院股份有限公司

摘要 :

一种映射关系确定方法、装置、可读存储介质及计算机设备,该方法包括,获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,原始结构光图像是由多个规则排列的十字图案组成的图像,十字图案由亮色区域和暗色区域拼接形成;确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。本发明计算量小、计算效率高,且应用范围广。

权利要求 :

1.一种映射关系确定方法,其特征在于,包括:

获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成;

确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;

根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系;

所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像或十字线图像,当所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域;

当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中十字图案的中心点,并将所述中心点作为所述目标结构光图像中的十字点;

当所述原始结构光图像为十字线图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;

采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;

从所述目标结构光图像中像素点的左、右、上、下区域选取若干个位于十字线上且间隔相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。

2.如权利要求1所述的映射关系确定方法,其特征在于,所述确定所述目标结构光图像中每个像素点周围四个方块区域的颜色的步骤包括:利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;

采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;

从所述目标结构光图像中当前像素点周围的四个所述方块区域中各选取若干个像素点作为参考像素点,并将所述当前像素点对应的灰度差值分别与每个所述参考像素点对应的灰度差值进行比较;

当所述当前像素点对应的灰度差值大于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为暗色;

当所述当前像素点对应的灰度差值小于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为亮色。

3.如权利要求1所述的映射关系确定方法,其特征在于,所述确定所述目标结构光图像中的十字点的位置的步骤包括:确定所述目标结构光图像中所述十字图案的中心点;

查找当前中心点周围的所有目标中心点,所述目标中心点为与所述当前中心点的距离在预设距离以内的中心点;

将查找到的目标中心点与所述当前中心点围合成一个片区;

对所述片区内所有中心点的位置坐标取平均值,并将所述平均值对应的位置点作为所述片区的十字点。

4.如权利要求1所述的映射关系确定方法,其特征在于,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括对目标结构光图像中的十字点进行计算处理的步骤:对所述目标结构光图像中的所有十字点进行分行处理,以确定各个十字点所处的行位置;

在每一行中依序计算相邻两个十字点的间距,并将间距小于阈值距离的两个相邻十字点中的其中一个删除。

5.如权利要求1所述的映射关系确定方法,其特征在于,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括:将原始结构光图像通过投影设备分行投影至所述目标物体上,获取摄像头采集每次投影后的目标物体的二维图像,并针对每张二维图像分别进行十字点的计算处理,将各图像的计算结果合并。

6.如权利要求5所述的映射关系确定方法,其特征在于,所述确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系的步骤还包括:通过编号建立目标结构光图像和原始结构光图像中各个十字点的位置坐标的映射关系,形成映射表。

7.如权利要求6所述的映射关系确定方法,其特征在于,通过编号建立目标结构光图像和原始结构光图像中各个十字点的位置坐标的映射关系的步骤包括:根据编号规则确定所述目标结构光图像中各个所述十字点的编号,并对编号重复的十字点进行编号修改;

根据所述目标结构光图像中各个十字点的编号查询所述原始结构光图像中对应的十字点,其中,所述编号规则为:NU = i + <(Xi-Xi-1)/d>-1

其中,NU为当前十字点的编号,xi为当前十字点i的横坐标,xi-1为十字点i-1的横坐标,d为当前十字点所在的一行十字点中相邻两个十字点的平均间距,<(Xi-Xi-1)/d >为对(Xi-Xi-1)/d的值进行四舍五入。

8.一种映射关系确定装置,其特征在于,包括:

获取模块,用于获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成;

十字点确定模块,用于确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;

映射关系确定模块,用于根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系;

所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像或十字线图像,当所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域;

当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中十字图案的中心点,并将所述中心点作为所述目标结构光图像中的十字点;

当所述原始结构光图像为十字线图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;

采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;

从所述目标结构光图像中像素点的左、右、上、下区域选取若干个位于十字线上且间隔相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。

9.一种可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7任一所述的映射关系确定方法。

10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任意一项所述的映射关系确定方法。

说明书 :

映射关系确定方法、装置、可读存储介质及计算机设备

技术领域

[0001] 本发明涉及图像处理技术领域,特别是涉及一种映射关系确定方法、装置、可读存储介质及计算机设备。

背景技术

[0002] 虚拟现实(Virtual Reality)也称为虚拟技术、虚拟环境,是20世纪发展起来的一项全新的实用技术,是利用计算机模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以即时、没有限制地观察三维空间内的事物。随着科技的发展,虚拟现实技术也取得了巨大进步,并逐步成为一个新的科学技术领域。
[0003] 虚拟现实技术应用领域范围很广,其中很多应用需要计算投影设备(如投影)和摄像头设备(如相机)之间图像的对应关系,如在光雕投影(Projection mapping、3d mapping)、三维模型重建技术等中都需要计算投影图像和摄像头拍摄的图像之间对应关系。由于投影至三维物体上,因此确定投影设备的投影图像和摄像设备采集的投影后物体的图像之间的像素点位置对应关系难度很大。现有技术中很难做到确定、有效地计算出这两个图像像素间的位置映射关系。

发明内容

[0004] 鉴于上述状况,有必要提供一种映射关系确定方法、装置、可读存储介质及计算机设备,以解决现有技术中计算出两个图像之间的像素位置映射关系难度大的问题。
[0005] 一种映射关系确定方法,包括:
[0006] 获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成;
[0007] 确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;
[0008] 根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。
[0009] 进一步的,上述映射关系确定方法,其中,所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像或十字线图像。
[0010] 进一步的,上述映射关系确定方法,其中,当所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0011] 确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域;
[0012] 当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中十字图案的中心点,并将所述中心点作为所述目标结构光图像中的十字点。
[0013] 进一步的,上述映射关系确定方法,其中,所述确定所述目标结构光图像中每个像素点周围四个方块区域的颜色的步骤包括:
[0014] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0015] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0016] 从所述目标结构光图像中当前像素点周围的四个所述方块区域中各选取若干个像素点作为参考像素点,并将所述当前像素点对应的灰度差值分别与每个所述参考像素点对应的灰度差值进行比较;
[0017] 当所述当前像素点对应的灰度差值大于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为暗色;
[0018] 当所述当前像素点对应的灰度差值小于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为亮色。
[0019] 进一步的,上述映射关系确定方法,其中,当所述原始结构光图像为十字线图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0020] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0021] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0022] 从所述目标结构光图像中像素点的左、右、上、下区域选取若干个位于十字线上且间隔相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。
[0023] 进一步的,上述映射关系确定方法,其中,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0024] 确定所述目标结构光图像中所述十字图案的中心点;
[0025] 查找当前中心点周围的所有目标中心点,所述目标中心点为与所述当前中心点的距离在预设距离以内的中心点;
[0026] 将查找到的目标中心点与所述当前中心点围合成一个片区;
[0027] 对所述片区内所有中心点的位置坐标取平均值,并将所述平均值对应的位置点作为所述片区的十字点。
[0028] 进一步的,上述映射关系确定方法,其中,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括对目标结构光图像中的十字点进行计算处理的步骤:
[0029] 对所述目标结构光图像中的所有十字点进行分行处理,以确定各个十字点所处的行位置;
[0030] 在每一行中依序计算相邻两个十字点的间距,并将间距小于阈值距离的两个相邻十字点中的其中一个删除。
[0031] 进一步的,上述映射关系确定方法,其中,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括:
[0032] 将原始结构光图像通过投影设备分行投影至所述目标物体上,获取摄像头采集每次投影后的目标物体的二维图像,并针对每张二维图像分别进行十字点的计算处理,将各图像的计算结果合并。
[0033] 进一步的,上述映射关系确定方法,其中,所述确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系的步骤还包括:
[0034] 通过编号建立目标结构光图像和原始结构光图像中各个十字点的位置坐标的映射关系,形成映射表。
[0035] 进一步的,上述映射关系确定方法,其中,通过编号建立目标结构光图像和原始结构光图像中各个十字点的位置坐标的映射关系的步骤包括:
[0036] 根据编号规则确定所述目标结构光图像中各个所述十字点的编号,并对编号重复的十字点进行编号修改;
[0037] 根据所述目标结构光图像中各个十字点的编号查询所述原始结构光图像中对应的十字点,其中,所述编号规则为:
[0038] NU = i + <(Xi-Xi-1)/d>-1
[0039] 其中,NU为当前十字点的编号,xi为当前十字点i的横坐标,xi-1为十字点i-1的横坐标,d为该行相邻两个十字点的平均间距,<(Xi-Xi-1)/d >为对(Xi-Xi-1)/d的值进行四舍五入。
[0040] 进一步的,上述映射关系确定方法,还包括:
[0041] 基于插值法确定所述目标结构光图像与所述原始结构光图像中所述十字点之外的像素点之间的映射关系。
[0042] 本发明实施例还提供了一种映射关系确定装置,包括:
[0043] 获取模块,用于获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成;
[0044] 十字点确定模块,用于确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;
[0045] 映射关系确定模块,用于根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。
[0046] 进一步的,上述映射关系确定装置,其中,所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像或十字线图像。
[0047] 进一步的,上述映射关系确定装置,其中,当所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0048] 确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域;
[0049] 当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中十字图案的中心点,并将所述中心点作为所述目标结构光图像中的十字点。
[0050] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像中每个像素点周围四个方块区域的颜色的步骤包括:
[0051] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0052] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0053] 从所述目标结构光图像中当前像素点周围的四个所述方块区域中各选取若干个像素点作为参考像素点,并将所述当前像素点对应的灰度差值分别与每个所述参考像素点对应的灰度差值进行比较;
[0054] 当所述当前像素点对应的灰度差值大于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为暗色;
[0055] 当所述当前像素点对应的灰度差值小于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为亮色。
[0056] 进一步的,上述映射关系确定装置,其中,当所述原始结构光图像为十字线图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0057] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0058] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0059] 从所述目标结构光图像中像素点的左、右、上、下区域选取若干个位于十字线上且间隔相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。
[0060] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0061] 确定所述目标结构光图像中所述十字图案的中心点;
[0062] 查找当前中心点周围的所有目标中心点,所述目标中心点为与所述当前中心点的距离在预设距离以内的中心点;
[0063] 将查找到的目标中心点与所述当前中心点围合成一个片区;
[0064] 对所述片区内所有中心点的位置坐标取平均值,并将所述平均值对应的位置点作为所述片区的十字点。
[0065] 进一步的,上述映射关系确定装置,还包括:
[0066] 分行处理模块,用于对所述目标结构光图像中的所有十字点进行分行处理,以确定各个十字点所处的行位置;
[0067] 降噪模块,用于在每一行中依序计算相邻两个十字点的间距,并将间距小于阈值距离的两个相邻十字点中的其中一个删除。
[0068] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括:
[0069] 将原始结构光图像通过投影设备分行投影至所述目标物体上,获取摄像头采集每次投影后的目标物体的二维图像,并针对每张二维图像分别进行十字点的计算处理,将各图像的计算结果合并。
[0070] 本发明实施例还提供了一种可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一所述的映射关系确定方法。
[0071] 本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述任意一项所述的映射关系确定方法。
[0072] 本发明实施例中提出了一种新的结构光概念,即方块结构光,通过投影仪投射方块结构光至目标物体上,并通过摄像头拍照采集得到目标结构光图像。再确定该目标结构光图像中的十字点,并查找与原始结构光图像中对应的十字点从而确定投影设备的投影图像和相机拍摄的图像之间像素点的位置映射关系。本发明计算量小、计算效率高,且应用范围广,更重要的是为VR技术的突破奠定了基础。

附图说明

[0073] 图1为本发明第一实施例中的映射关系确定方法的流程图;
[0074] 图2为原始结构光图像的示意图;
[0075] 图3a和图3b分别为两种情况下四个相邻方块的颜色示意图;
[0076] 图4为本发明第二实施例中的映射关系确定方法的流程图;
[0077] 图5为本发明第二实施例中确定目标结构光图像中每个像素点周围四个方块区域的颜色的方法流程图;
[0078] 图6为本发明第二实施例中,各个方块区域中参考像素点的位置分布示意图;
[0079] 图7为本发明第三实施例中一个区域图像的示意图;
[0080] 图8为投影图像为十字线图像时,各个参考像素点的位置关系示意图;
[0081] 图9为本发明第四实施例中的映射关系确定装置的结构框图。

具体实施方式

[0082] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0083] 参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0084] 请参阅图1,为本发明第一实施例中的映射关系确定方法,包括步骤S11 S13。~
[0085] 步骤S11,获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成。
[0086] 通过投影设备投射一张原始结构光图像至目标物体和参考物体上,再利用摄像头进行拍照得到该目标物体的二维图像,即为该目标结构光图像。
[0087] 该原始结构光图像是由多个规则排列的十字图案组成的图像,例如为规则的暗色的方块和亮色的方块交替出现的网格图像(以下可称为方块结构光图像)或者是十字线图像,通过程序可计算得到该原始方块结构光图像或十字线图像。如图2所示,本实施例中,该原始结构光图像中,相邻四个方块按照两行两列排布,暗色和亮色区域的分界线形成了该十字图案,多个十字图案排列形成网格图像。
[0088] 需要说明的是,该原始结构光图像中暗色方块和亮色方块的比例、方块的尺寸以及十字线的尺寸可以根据实际需要进行设置,如本实施例中该原始结构光图像中暗色方块和亮色方块的大小均等。
[0089] 接下来,以投影的原始结构光图像为大小均等的暗色的方块和和亮色的方块交替出现的网格图像(简称为方块结构光)为例,对映射关系的确定步骤进行叙述。
[0090] 投影设备投影原始方块结构光图像的过程中产生方块结构光,即向目标物体投射方块结构光。这种结构光采用对比度较大的两种颜色的小方块组成,即灰度值较小的暗色小方块和灰度值较大的亮色小方块,其信息少,容易进行计算处理。
[0091] 优选的,该两种方块的颜色可采用纯黑色和纯白色,其对比度最大,有利于数据的处理。
[0092] 该投影设备例如投影仪,其与计算机设备连接,通过计算机设备控制该投影设备投射原始结构光图像。投影设备和摄像头的分辨率不同,因此,目标结构光图像与原始结构光图像的分别率不同。具体的,该投影设备投射画面的分辨率和计算机一致,例如均为1366*768,也就是横向分辨率和纵向分辨率分别是1366和768,摄像头的分辨率为2448*
2048。
[0093] 投影设备投射方块结构光至目标物体上,并通过摄像头采集目标物体的图像,得到二维图像,即目标结构光图像,因此该目标结构光图像也为亮色、暗色方块交替出现的网格图像。具体实施时,对相机采集的目标结构光图像进行图像预处理,提取网格图像中的亮色方块和暗色方块的特征并进行如下数据处理。
[0094] 步骤S12,确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点。
[0095] 步骤S13,根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。
[0096] 原始结构光图像为投影图像,而目标结构光图像为摄像头拍的图像,投影设备和摄像机的分辨率不同,因此需要确定该目标结构光图像中的各像素点的与原始结构光图像中各像素点的位置之间映射关系,具体实施时,该映射关系可以以映射关系表的形式存储。
[0097] 如何确定摄像设备中原始方块结构光图像和摄像头采集的图像之间像素点的映射关系,是本实施例中的重点和难点。
[0098] 本实施例中采用方块结构光对物体进行投射,因此摄像头采集的二维图像也是亮色和暗色方块交替出现的网格图像。
[0099] 具体实施时,可将网格图像中十字图案的中心点即相邻四个方块的交点处的像素点定义为十字点。例如四个方块按两行两列排列,组成一个正方形,这个正方形对角线上的方块颜色是一样的,纵向和横向的相邻方块颜色不同,这四个方块的交点即为十字点。
[0100] 进一步的,确定目标结构光图像与原始结构光图像中各个像素点的位置映射关系时,可先确定两幅图像中十字点之间的位置映射关系。然后再确定目标结构光图像和原始结构光图像中除十字点之外的像素点之间的位置映射关系。
[0101] 具体的,该目标结构光图像中各个十字点和原始结构光图像中各个十字点可通过系统的标识来识别,根据该标识查找两图像中对应的十字点,然后获取两张图像中对应十字点的坐标即可得到两张图像中十字点之间的位置映射关系。
[0102] 需要说明的是,原始结构光图像中各个方块的位置是固定的,因此每个十字点的位置可确定。而目标结构光图像由于是采集的投射中物体上的二维图像,因此方块部分变形,因此四个相邻方块的十字点比较难以确定。作为本发明的一种实施方式,该目标结构光图像中的十字点可根据每个像素点周围四个方块区域的颜色差异确定,具体可采用下述步骤来实现:
[0103] 步骤1,确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,该四个方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域的颜色;
[0104] 步骤2,当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中的交点,并将所述交点作为所述目标结构光图像中的十字点。
[0105] 如图3a和3b所示,该目标结构光图像中相邻四个方块由交替暗色方块和亮色方块组成,其交点周围四个方块区域的颜色具有一定的规律,如该交点的左上方块为暗色、左下方块为亮色、右下方块为暗色、右上方块为亮色,或者该交点左上方块为亮色、左下方块为暗色、右下方块为亮色、右上方块为暗色。
[0106] 根据该规律依次判断每个像素点周围四个方块区域的颜色,当当前像素点符合该规律时,则确定该当前像素点为四个方块的交点。并将该当前像素点作为该目标结构光图像中的十字点。其中,该方块区域的尺寸等于或略小于实际投影后的亮色和暗色方块的尺寸。
[0107] 需要说明的是,本实施例中仅以颜色的灰度值来区分各个颜色的不同,其中,左上区域、左下区域、右下区域和右上区域中所提到的亮色和暗色分别为灰度值不同的两种颜色。
[0108] 本实施例中提出了一种新的结构光概念,即方块结构光,通过投影仪投射方块结构光至目标物体上,并通过摄像头拍照采集得到目标结构光图像。再确定该目标结构光图像中的十字点,并查找与原始结构光图像中对应的十字点从而确定投影设备的投影图像和相机拍摄的图像之间像素点的位置映射关系。本实施例计算量小、计算效率高,且应用范围广,更重要的是为VR技术的突破奠定了基础。
[0109] 请参阅图4,为本发明第二实施例中的映射关系确定方法,包括步骤S21 S26。~
[0110] 步骤S21,获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,其中,所述原始结构光图像为黑色的方块和白色的方块交替出现的网格图像。
[0111] 步骤S22,确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域。
[0112] 具体的,如图5所示,确定所述目标结构光图像中每个像素点周围四个方块区域的颜色的步骤具体包括:
[0113] 步骤S221,利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0114] 步骤S222,采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0115] 步骤S223,从所述目标结构光图像中当前像素点周围的四个所述方块区域中各选取若干个像素点作为参考像素点,并将所述当前像素点对应的灰度差值分别与每个所述参考像素点对应的灰度差值进行比较;
[0116] 步骤S224,当所述当前像素点对应的灰度差值大于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为白色;
[0117] 步骤S225,当所述当前像素点对应的灰度差值小于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为黑色。
[0118] 本实施例中,首先利用投影设备投影一低灰度的纯色图像至三维物体上,该纯色图像的灰度值低于阈值例如为20。采用相机对三维物体进行拍照,得到的二维图像,称为“暗照”,这张“暗照”作为确定十字点的参考图像。然后对所述目标结构光图像和所述参考图像中所有像素点的左上区域、左下区域、右下区域和右上区域进行灰度值采样。
[0119] 采样点的数量和具体位置可根据实际需要进行设置。需要说明的是,由于投影仪投射图像时某点的亮度会影响周围几个点的实际亮度值,为提高确定十字点位置信息的精度,采样离当前十字点较远的周围几个像素点作为参考像素点。例如,在当前像素点N(x,y)左上区域、左下区域、右下区域和右上区域各采集三个参考点,各个方块区域中参考像素点的位置如图6所示,坐标为如下:
[0120] 左上区域的采样点为,LU1,坐标为(x-3,y+3);LU2,坐标为(x-2,y+3),LU3,坐标为(x-3,y+2);
[0121] 左下区域的采样点为,LD1,坐标为(x-3,y-3);LD2,坐标为(x-2,y-3);LD3,坐标为(x-3,y-2);
[0122] 右下区域的采样点为,RD1,坐标为(x+3,y-3);RD2,坐标为(x+2,y-3);RD3,坐标为(x+3,y-2);
[0123] 右上区域的采样点为,RU1,坐标为(x+3,y+3);RU2,坐标为(x+2,y+3),RU3,坐标为(x+3,y+2)。
[0124] 图6中,各个参数像素点在X轴和Y轴方向上距离该当前像素点2至3个像素单位。
[0125] 对该目标结构光图像中和参考图像的对应位置的像素点的灰度值进行差值计算,并根据像素点和各个方块区域中参考像素点的灰度差值确定各个区域的颜色。下面以其中一像素点为例进行说明:
[0126] 将该目标结构光图像中的当前像素点的灰度值记为B(x,y),参考图像中与该当前像素点位置对应的参考像素点的灰度值记为A(x,y)。对应位置点之间的灰度差值记为C(x,y),则C(x,y)=B(x,y)-A(x,y)。
[0127] 如果C(x-3,y+3)> C(x,y),且 C(x-3,y+2)> C(x,y),且 C(x-2,y+3) > C(x,y),则左上区域记为白色;
[0128] 如果C(x-3,y+3) < C(x,y),且 C(x-3,y+2) < C(x,y),且 C(x-2,y+3)< C(x,y) ,则左上区域记为黑色。
[0129] 步骤S23,当当前像素点的左上区域的颜色为黑色、左下区域的颜色为白色、右下区域的颜色为黑色和右上区域的颜色为白色,或当所述当前像素点的左上区域的颜色为白色、左下区域的颜色为黑色、右下区域的颜色为白色和右上区域的颜色为黑色时,确定所述当前像素点为相邻四个方块的交点。
[0130] 当前像素点周围四个方块区域的颜色呈黑白交替出现时,则确定当前像素点为四个方块的交点,即疑似十字点。
[0131] 可以理解的,当投射在目标物体上的原始结构光图像为十字线图像时,十字线图像为由多个十字图案排列形成,该十字图案为两条正交直线形成的“十”字的图案。可将十字线的两条直线交点(即十字图案的中心点)处的像素点定义为十字点,此时,根据所述目标结构光图像与所述原始结构光图像中十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系的方法是相同的,但是,由于投影十字线图像与投影方块结构光图像时的结构光图像不同,因而,目标结构光图像和原始结构光图像中十字点的位置确定的方法也有所不同。
[0132] 具体的,原始结构光图像中各个十字线的位置是固定的,因此每个十字点的位置可确定。而目标结构光图像由于是采集投射在物体上的二维图像,因此十字线部分变形,因此十字线上的十字点比较难以确定。作为本发明的一种实施方式,该目标结构光图像中的十字点可根据当前像素点及距当前像素点相同距离的且是当前像素点左、右、上、下区域的十字线上的点的颜色差异确定,具体可采用下述步骤来实现:
[0133] 利用投影设备投影一张灰度值小于阈值的纯色图像至目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0134] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0135] 从所述目标结构光图像中当前像素点的左、右、上、下区域选取若干个位于十字线上且间隔当前像素点相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。
[0136] 再具体的,在本实施例中,首先利用投影设备投影一低灰度的纯色图像至三维物体上,该纯色图像的灰度值低于阈值,例如为10。采用相机对三维物体进行拍照,得到的二维图像,称为“暗照”,这张“暗照”作为确定十字点的参考图像。然后对所述目标结构光图像(记做“格照”)和所述参考图像中像素点上方区域的十字线上的点(记做上点)、像素点下方区域的十字线上的点(记做下点)、像素点左方区域的十字线上的点(记做左点)、像素点右方区域的十字线上的点(记做右点)进行灰度值采样,左点、右点、上点、下点均是距离该像素点相同距离。
[0137] 采样点的数量和具体位置可根据实际需要进行设置。需要说明的是,由于投影仪投射图像时某点的亮度会影响周围几个点的实际亮度值,为提高确定十字点位置信息的精度,采样离当前十字点较远的周围几个像素点作为参考像素点。例如,在距当前像素点M(x,y)相同距离且位于当前像素点M(x,y)左方、右方、上方、下方区域的十字线上各采集两个参考点,各个十字线参考像素点的位置如图8所示,坐标为如下:
[0138] 当前像素点M上方的十字线上的采样点为U1,坐标为(x,y+3);U2,坐标为(x,y+6);
[0139] 当前像素点下方的十字线上的采样点左下区域的采样点为D1,坐标为(x,y-3); D2,坐标为(x,y-6);
[0140] 当前像素点左方的十字线上的采样点为,L1,坐标为(x-3,y);L2,坐标为(x-6,y);
[0141] 当前像素点右方的十字线上的采样点为,R1,坐标为(x+3,y);R2,坐标为(x+6,y)。
[0142] 图8中,各个参数像素点在X轴和Y轴方向上距离该当前像素点3个或6像素单位。
[0143] 对该目标结构光图像中和参考图像的对应位置的像素点的灰度值进行差值计算,并根据像素点和各个方块区域中参考像素点的灰度差值确定各个区域的颜色。下面以其中一像素点为例进行说明:
[0144] 将该目标结构光图像中的当前像素点的灰度值记为B(x,y),参考图像中与该当前像素点位置对应的参考像素点的灰度值记为A(x,y)。对应位置点之间的灰度差值记为C(x,y),则C(x,y)=B(x,y)-A(x,y)。
[0145] 如果C(x,y)>10,记为当前像素点(本点);
[0146] 如果C(x-3,y) >10,记为左点1;
[0147] 如果C(x+3,y) >10,记为右点1;
[0148] 如果C(x,y+3) >10,记为上点1;
[0149] 如果C(x,y-3) >10,记为下点1;
[0150] 如果C(x-6,y) >10,记为左点2;
[0151] 如果C(x+6,y) >10,记为右点2;
[0152] 如果C(x,y+6) >10,记为上点2;
[0153] 如果C(x,y-6) >10,记为下点2;
[0154] 将本点作为十字线的交点,记为疑似十字点。
[0155] 获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像为十字线图像或暗色方块和亮色方块交替出现的网格图像;确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像的交点位置的像素点。
[0156] 具体地,步骤S24,根据各个交点确定所述目标结构光图像中的十字点的位置。
[0157] 具体的,该目标结构光图像中的十字点根据各个交点的位置确定,具体的确定方法包括:
[0158] 查找所述目标结构光图像中当前交点周围的所有目标交点,所述目标交点为与所述当前交点的距离在预设距离以内的交点(即分域处理);
[0159] 将查找到的目标交点与所述当前交点围合成一个片区;
[0160] 对所述片区内所有交点的位置坐标取平均值,并将所述平均值对应的位置点作为所述片区的十字点。
[0161] 本实施例中,确定的各个交点仅为疑似十字点,即并不是所有的交点都作十字点。因此,需要对各个交点进行合并处理,从而确定理想的十字点的位置。
[0162] 具体的,首先取一个交点,然后拾取当前交点周围的满足预设条件的目标交点。该预设条件为与该交点的距离在预设距离以内。该预设距离根据实际投影后的方块的大小确定,例如可设置为3个坐标单位,也就是X方向和Y方向上距离当前交点均小于3个单位的交点。将找到的目标交点和当前交点则作为一个区域,针对该区域进行合并处理,合并的方法就是取该区域的中心点,即对该区域内所有目标交点和当前交点的位置在X、Y方向上取平均值,然后将得到的平均值作为该区域的中心点的位置坐标,并将该位置坐标上的像素点作为该区域的十字点。
[0163] 根据该方法对对所有片区进行相同的运算,以对每个片区的交点进行合并处理,从而得到该目标结构光图像中符合要求的所有十字点。
[0164] 进一步的,作为本发明的另一种实施方式,为了使目标结构光图像中各个十字点的位置坐标更为准确,得到可以使用的十字点信息,还需要对上述符合要求的十字点进行分行处理和降噪处理,删除不理想的十字点后,再执行步骤S25。
[0165] 其中,分行处理即是使目标结构光图像中各个十字点按照原始结构光图像中行位置进行分行。分行的原则是选择每行最左边的十字点作为一行的开始点,然后将其右侧的十字点Y坐标值与该开始点的Y坐标值进行比较,如果差值在预设值(如20)以内,则和该点是同一行,以此例推,将每一个十字点均与右侧一个十字点的Y坐标值进行比较,以确定是否为同一行,直至最右侧的十字点。通过该运算,最后会剩下部分不符合要求的十字点,对这些十字点进行如下处理:
[0166] 比较该十字点Y方向相邻的十字点Y值大小,该十字点Y值越接近哪行的Y值,则归入哪行,这一步就将所有的十字点完成了分行处理。
[0167] 根据上述分行处理方法可确定各个十字点所属的行位置,然后再对每一行的十字点进行降噪处理,降噪处理过程如下:
[0168] (1)由于最左边的十字点并不一定是该目标结构光图像的左边界点,所以需要确定边界点的位置。首先确定各个最左侧十字点a0,即位置在目标结构光图像最左边的十字点,然后查找临近当前最左侧十字点a0左侧的一个像素点a-1,对该当前最左侧十字点a0进行运算,该运算为:
[0169] 用当前最左侧十字点a0相邻的右侧像素点a1的灰度值减去像素点a-1的灰度值,得到灰度差值A0,同时对该像素点a-1进行相同的运算,即a-1右侧的像素点a0的灰度值减去其左侧相邻的像素点a-2的灰度值,得到灰度差值A-1,比较A0和A-1的大小;
[0170] 依次类推,对a0左边的所有像素点均通过上述运算进行灰度差值比较,找到灰度差值最大的目标点,而且这个目标点经该运算过后的灰度差值不变化,则该目标点为图像左边的界点;
[0171] (2)根据上述原理得出图像的右边界点;
[0172] (3)清除噪点,即对左右边界点X方向的位置坐标进行减法计算并除以该行所有十字点的数量,得到十字点的平均间距(如0.75),然后,算出该行所有十字点的平均Y值,如果任意两个相邻十字点的X方向上的间距小于X平均间距的0.75,则这两个相邻的十字点必须删掉一个,删掉的原则是哪个点的Y值越接近Y平均值,则保留,清除另一个十字点;
[0173] 依次类推对每一行十字点都进行清除噪点处理,从而删除了所有十字点中的噪点,得到更为确的十字点。
[0174] 投影十字线或网格图像的原始结构光图像在确定疑似十字点的方法后,进行疑似十字点的分域、域合并、分行、降噪处理之后,确定了所述目标结构光图像与所述原始结构光图像中各个十字点更为精确的位置,但是,为了进一步增强投射十字线图像的结构光图像所获得的目标结构光图像中的十字点处理的精度,可以继续进行补点处理。
[0175] 具体的,该补点处理的方法如下:
[0176] 投影的十字线图像是一行一行的,因此要针对每一行都做一次如下运算:
[0177] 针对每一行中的点保持X坐标值从小到大(即从左往右)排序状态。
[0178] 任意一行的数据满足以下条件,则判断该行中可能存在漏掉的十字点,需进行补点处理。该条件即为:
[0179] 对于同一行中的每个点,设本点Pn的X坐标值为Xn,前一点Pn-1的X坐标值为Xn-1,本点Pn的X坐标值减去前一点Pn-1的X坐标值记作“X差”,如果X差>( X1+X2+…+Xn) /n*1.5,则判断该行中存在漏掉的十字点,需进行补点处理。
[0180] 具体地,任意行的补点处理的步骤包括:
[0181] 因为排序, 所以Pn的X坐标值为Xn必大于Pn-1的X坐标值为Xn-1
[0182] 针对Xn与Xn-1之间的每个X坐标值(不包括Xn与Xn-1), 依次进行以下运算:
[0183] 针对每一次运算时的X坐标值,记作”Xi”,每一次运算时的Y坐标值,记作“Yi”,进行如下算法循环:
[0184] S1:Xi=Xn-1+1,Yi=Yn;
[0185] S2:若Xi≥Xn,
[0186] 则终止运算。
[0187] 若Xi< Xn-1,则进行如下运算:
[0188] S201:比较3个点(点坐标分别为:(Xi,Yi),(Xi,Yi-1),(Xi,Yi+1))的灰度值差是否都小于5,
[0189] 若不满足:
[0190] 则终止运算;
[0191] 若满足(即3个点(Xi,Yi),(Xi,Yi-1),(Xi,Yi+1)的灰度值差是否都大于等于5),则进行S202步骤,如下:
[0192] 找出3个点中的灰度值差最大的点,记为亮点,亮点的Y坐标值记为Y亮,将亮点放入疑似漏点集中,并将Yn=Y亮;
[0193] 记Xi=Xi+1,Yi=Yn,
[0194] 重复S2步骤,直至若i≥n,则终止运算。
[0195] 这些集中的点是同一行中的多个十字点所形成的连接线上的点,因而,将这些点连接起来即形成各行十字点所形成的连接线。
[0196] 以上为从左至右寻找漏点来补点处理。
[0197] 或者,还可以从右至左寻找漏点来补点处理,具体步骤如下:
[0198] 针对Xn与Xn-1之间的每个X坐标值(不包括Xn与Xn-1), 依次进行以下运算:
[0199] 针对每一次运算时的X坐标值,记作”Xi”,每一次运算时的Y坐标值,记作“Yi”,进行如下算法循环:
[0200] S1:Xi=Xn-1,Yi=Yn;
[0201] S2:若Xi≤Xn-1,则终止运算,
[0202] 若Xi> Xn,则进行如下运算:
[0203] S201:比较3个点(点坐标分别为:(Xi,Yi),(Xi,Yi-1),(Xi,Yi+1))的灰度值差是否都小于5,
[0204] 若不满足,则终止运算。
[0205] 若满足(即3个点(Xi,Yi),(Xi,Yi-1),(Xi,Yi+1)的灰度值差是否都大于等于5),则进行S22步骤,S22如下:
[0206] 找出3个点中的灰度值差最大的点,记为亮点,亮点的Y坐标值记为Y亮,将亮点放入疑似漏点集中,并将Yn=Y亮;
[0207] Xi=Xi-1,Yi=Yn
[0208] 重复S2步骤,直至若i≥n,则终止运算。
[0209] 这些集中的点是同一行中的多个十字点所形成的连接线上的点,因而,将这些点连接起来即形成各行十字点所形成的连接线。
[0210] 对于在上一步找到集中的点所形成的连接线来说,连接线上的每个点P坐标(Px,Py),如果同时满足以下条件:
[0211] 条件1: 坐标为(Px,Py-3)、(Px,Py+3)的点的灰度差值均大于10,坐标为(Px,Py-6)、(Px,Py+6)、的点的灰度差值均大于8;
[0212] 条件2: 在“连接线”的像素点集合中找满足X坐标等于Px -3的点记作“左点”,左点的坐标为(左x,左y),左点存在且左点的灰度差值大于10; (即左x 必等于Px -3 且左y 未必等于Py)
[0213] 条件3: 在“连接线”的像素点集合中找满足X坐标等于Px +3的点记作“右点”,右点的坐标为(右x,右y),右点存在且右点的灰度差值大于10;
[0214] 条件4: 在“连接线”的像素点集合中找满足X坐标等于Px-6的点记作“左2点”,左2点的坐标为(左2x,左2y),左2点存在且左2点的灰度差值大于8;
[0215] 条件5: 在“连接线”的像素点集合中找满足X坐标等于Px+6的点记作“右2点”,右2点的坐标为(右2x,右2 y),右2点存在且右2点的灰度差值大于8。
[0216] 同时满足条件1至条件5的点P为符合条件的点,补充为十字点,插入本行。
[0217] 重复以上步骤,直至将连接线上所有满足条件的点找到,并将找到的所有符合条件的点都补充为十字点,插入该行中。
[0218] 需要说明的是,以上运算中提到的灰度值差的计算方法,在上文中已有记叙:将该目标结构光图像中的当前像素点的灰度值记为B(x,y),参考图像中与该当前像素点位置对应的参考像素点的灰度值记为A(x,y)。对应位置点之间的灰度差值记为C(x,y),则C(x,y)=B(x,y)-A(x,y)。
[0219] 在确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置后,根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。即步骤S25,计算所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系。
[0220] 具体的,原始结构光图像为投影图像,而目标结构光图像为照相机拍的图像,投影设备和照相机的分辨率不同,因此,两张结构光图像中相同十字点对应的位置坐标采用不同的坐标系。本实施例中需要建立目标结构光图像和原始结构光图像中各个十字点的位置坐标的映射关系。
[0221] 该目标结构光图像和原始结构光图像中各个十字点可通过编号来识别的,根据该标识查找两图对应的十字点,然后获取两张图像中对应十字点的坐标即可得到两张图像中十字点之间映射关系。将目标结构光图像中十字点的位置坐标(X’,Y’),与原始结构光图像中十字点的位置坐标(X,Y)进行一一映射,可以得到这两张图像之间的映射关系,如表1所示,表1仅例举了部分坐标映射关系)。其中,(X,Y)为投影图像的坐标,(X’,Y’)为相机拍摄图像的坐标。
[0222] 表1
[0223] X Y X’ Y’5 5 190 331
10 5 197 330
15 5 204 330
20 5 211 330
25 5 218 329
30 5 225 329
35 5 233 329
40 5 240 329
[0224] 需要说明的是,目标结构光图像和原始结构光图像中十字点的标识可以编号来表示。具体实施时,可为两张图像中对于每一行中的每个十字点分配对应的编号,编号规则如下:
[0225] NU = i + <(Xi-Xi-1)/d>-1
[0226] 其中,NU为当前十字点的编号,i为当前十字点的下标,xi为当前十字点的横坐标,xi-1为前点的横坐标,d为该行相邻两个十字点的平均间距,<(Xi-Xi-1)/d >为对(Xi-Xi-1)/d的值进行四舍五入;
[0227] 按照上述编号规则编号后,采用下述方法进行编号的整理:
[0228] 当上行对应点与下行对应点同时满足条件6和条件7时,则修改当前十字点的编号。其中,“上行对应点”表示上一行中编号与当前十字点相同的点,“下行对应点”表示下一行中编号与当前十字点相同的十字点。
[0229] 其中,条件6为:上行对应点的横坐标与下行对应点的横坐标的差值小于预设值;条件7为:当前十字点的横坐标与下行对应点的横坐标的差值大于该预设值,此处的预设值可根据实际情况进行设设置,例如可设置为5。
[0230] 其中,则修改当前十字点的编号具体方法如下:
[0231] 当上行差距最小点的横坐标与当前十字点的横坐标的差值小于下行差距最小点的横坐标与当前十字点的横坐标的差值时,将当前十字点的编号修改为上行差距最小点的编号,然后后续的点依次修改;
[0232] 当上行差距最小点的横坐标与当前十字点的横坐标的差值大于下行差距最小点的横坐标与当前十字点的横坐标的差值时,将当前十字点的编号修改为下行差距最小点的编号,然后后续的点依次修改。
[0233] 其中,上行差距最小点,表示从上一行中找出与当前十字点的横坐标差距最小的点;下行差距最小点,表示从下一行中找出与当前十字点的横坐标差距最小的点。
[0234] 通过上述编号规则和编号整理可确定目标结构光中各个十字点的编号。
[0235] 进一步的,该方法还可包括步骤S26,根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,并基于插值法确定所述目标结构光图像与所述原始结构光图像中所述十字点之外的像素点之间的映射关系。
[0236] 确定了目标结构光图像和原始结构光图像之间十字点的位置映射关系后,对于其他的像素点则根据差值法确定位置映射关系。例如其十字点(190,331)与空白图像中的目标位置点(5,5)对应,十字点(190,331)到十字点(197,330)中间按平均值取4个点,该四个点的坐标分别为(192,331),(193,331),(195,330),(196,330),按照差值法,坐标点(192,331)对应原始结构光图像中的坐标点(6,5),像素点(193,331)对应原始结构光图像中的坐标点(7,5),坐标点(195,330)对应原始结构光图像中的坐标点(8,5),坐标点(196,330)对应原始结构光图像中的坐标点(9,5)。以此类推可以确定出该目标结构光图像和原始结构光图像之间所有像素点的位置映射关系。因此,根据目标结构光图像和原始结构光图像之间的映射关系可确定投影设备的投影图像与摄像头采集的图像之间的像素位置映射关系。
[0237] 进一步的,为了提高数据处理效率和十字点的确认准确性,本发明的第三实施例中,可对原始结构光分多次投影,并进行多次图像采集,并分别对每次采集的图像进行十字点确定。具体的,该第三实施例中,所述获取摄像头采集的目标结构光图像的步骤包括:
[0238] 将原始结构光图像通过投影设备分行投影至所述目标物体上,并获取摄像头采集每次投影后的目标物体的二维图像。
[0239] 针对每张二维图像分别进行十字点的计算处理,即十字点的位置确定,并将各图像的计算结果合并。
[0240] 分别确定每个所述子图像中的十字点,并进行汇总,得到所述目标结构光图像中的所有十字点。
[0241] 优选的,上述步骤中,将原始结构光图像分行投影至所述目标物体上,获取摄像头采集每次投影后的目标物体的二维图像的步骤具体为:
[0242] 将所述原始结构光图像中的方块结构按行划分,得到多个方块结构光组;
[0243] 将多个所述结构光组均分为预设数量的等分,得到所述预设数量个区域图像,其中,四个相邻的方块组成一个方块结构,每个区域图像中相邻的结构光组间隔的宽度等于所述预设数量个结构光组的总宽度。
[0244] 举例来说,投射原始结构光图像的过程分成32次投射进行,每次投影均进行拍照。如将图2中的原始方块结构光图像中,一行方块结构形成一个方块结构光组,将所有的方块结构光组均分成32等分,得到32个区域图像,其中,四个方形成一个方块结构。如图7所示,该例中,每个区域图像包含四个方块结构光组,相邻两个结构光组之间间隔的宽度等于32个结构光组的总宽度。需要说明的是,图7中仅示出方块结构光组的区域的颜色,方块结构光组之间的区域的颜色为黑色。利用投影设备依次投射一个区域图像至目标物体上,并采集二维图像,图7所示的区域图像与采集的二维图像中的十字点是一一对应的。每个子图像中相邻行的十字点间距较大,便于十字点位置的确定。
[0245] 简而言之,该第三实施例中将原始结构光分多次投影,如32次,并进行32次图像采集,得到32张子图像。通过计算机将这32张子图像分别进行运算,以确定十字点,将运算结果进行汇总,最终可以确定该目标结构光图像中所有的十字点。由于每张子图像由多个结构光组构成,每个结构光组之间具有间距(为32个结构光组的总宽度),每张子图像中的信息量少、且构成简单,进行十字点定位时更加确定。
[0246] 同样的,原始结构光图像为十字线图像时,也是如此按行划分和处理的,不在此进行赘述。
[0247] 请参阅图9,为本发明第四实施例中的映射关系确定装置,包括:
[0248] 本发明实施例还提供了一种映射关系确定装置,包括:
[0249] 获取模块10,用于获取摄像头采集的目标结构光图像,所述目标结构光图像为通过投影设备投影原始结构光图像至目标物体上时采集的二维图像,所述原始结构光图像是由多个规则排列的十字图案组成的图像,所述十字图案由亮色区域和暗色区域拼接形成;
[0250] 十字点确定模块20,用于确定所述目标结构光图像与所述原始结构光图像中各个十字点的位置,所述十字点为结构光图像中十字图案中心点位置的像素点;
[0251] 映射关系确定模块30,用于根据所述目标结构光图像与所述原始结构光图像中所述十字点的位置,确定所述目标结构光图像和所述原始结构光图像中所述十字点之间的映射关系。
[0252] 进一步的,上述映射关系确定装置,其中,所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像或十字线图像。
[0253] 进一步的,上述映射关系确定装置,其中,当所述原始结构光图像为暗色的方块和亮色的方块交替出现的网格图像时,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0254] 确定所述目标结构光图像中每个像素点周围四个方块区域的颜色,四个所述方块区域按照与像素点的位置关系定义为左上区域、左下区域、右下区域和右上区域;
[0255] 当当前像素点的左上区域的颜色为暗色、左下区域的颜色为亮色、右下区域的颜色为暗色和右上区域的颜色为亮色,或当所述当前像素点的左上区域的颜色为亮色、左下区域的颜色为暗色、右下区域的颜色为亮色和右上区域的颜色为暗色时,确定所述当前像素点为所述目标结构光图像中十字图案的中心点,并将所述中心点作为所述目标结构光图像中的十字点。
[0256] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像中每个像素点周围四个方块区域的颜色的步骤包括:
[0257] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0258] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0259] 从所述目标结构光图像中当前像素点周围的四个所述方块区域中各选取若干个像素点作为参考像素点,并将所述当前像素点对应的灰度差值分别与每个所述参考像素点对应的灰度差值进行比较;
[0260] 当所述当前像素点对应的灰度差值大于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为暗色;
[0261] 当所述当前像素点对应的灰度差值小于当前方块区域中各个所述参考像素点对应的灰度差值时,确定所述当前方块区域为亮色。
[0262] 进一步的,上述映射关系确定装置,其中,当所述原始结构光图像为十字线图像时,确定所述目标结构光图像中的十字点的位置的步骤包括:
[0263] 利用所述投影设备投影一张灰度值小于阈值的纯色图像至所述目标物体上,并采集投影后的所述目标物体的二维图像,得到参考图像;
[0264] 采集所述目标结构光图像和所述参考图像中每个像素点的灰度值,并计算所述目标结构光图像和所述参考图像中对应位置的像素点的灰度值差,得到各个像素点对应的灰度差值;
[0265] 从所述目标结构光图像中像素点的左、右、上、下区域选取若干个位于十字线上且间隔相同距离的像素点作为参考像素点,当当前像素点对应的灰度差值及参考像素点对应的灰度差值大于预设差值时,确定当前像素点为十字点所在位置。
[0266] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像中的十字点的位置的步骤包括:
[0267] 确定所述目标结构光图像中所述十字图案的中心点;
[0268] 查找当前中心点周围的所有目标中心点,所述目标中心点为与所述当前中心点的距离在预设距离以内的中心点;
[0269] 将查找到的目标中心点与所述当前中心点围合成一个片区;
[0270] 对所述片区内所有中心点的位置坐标取平均值,并将所述平均值对应的位置点作为所述片区的十字点。
[0271] 进一步的,上述映射关系确定装置,还包括:
[0272] 分行处理模块40,用于对所述目标结构光图像中的所有十字点进行分行处理,以确定各个十字点所处的行位置;
[0273] 降噪模块50,用于在每一行中依序计算相邻两个十字点的间距,并将间距小于阈值距离的两个相邻十字点中的其中一个删除。
[0274] 进一步的,上述映射关系确定装置,其中,所述确定所述目标结构光图像与所述原始结构光图像中各个十字点之间的映射关系的步骤之前还包括:
[0275] 将原始结构光图像通过投影设备分行投影至所述目标物体上,获取摄像头采集每次投影后的目标物体的二维图像,并针对每张二维图像分别进行十字点的计算处理,将各图像的计算结果合并。
[0276] 本发明实施例所提供的映射关系确定装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0277] 本发明实施例还提供了一种可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一所述的方法。
[0278] 本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述任意一项所述的方法。
[0279] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0280] 计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0281] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0282] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0283] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。