matlab投影仪标定
matlab中的投影仪标定方法属于投射标定图案法,投射的图案只能是棋盘格,该方法将投影仪当作逆向的相机,它具有映射图像二维点到三维坐标的功能,因此可以使用张正友标定方法来对它进行标定。
投影仪标定图像的获取
获取图片的过程按照投射标定图案法博客中来做就可,需要注意的是,我推荐大家在进行投影仪标定之前先标定好相机,不要将相机和投影仪放在一起标定。因为,在投影仪标定中,需要考虑到投影仪投射区域是否在相机视场范围内来摆放标定板,因此标定板位姿的摆放受到了限制,可能会影响相机的标定精度。下图为拍摄投影仪标定图片的示例,对于手边资源不足的同学,只需要准备一张较为平整的白板(尺寸大一点,给投影仪投射图案留好区域),将打印的标定板贴上去即可。
在张正友的相机标定方法中,关键的输入参数有两个,第一个是角点的图像的坐标(在图像坐标系下),第二个是标定板上角点的空间坐标(在世界坐标系下)。如果我们想要将张正友标定方法应用于投影仪标定,那么这两个关键参数如何获得呢?
角点坐标的获取
在使用投射标定图案法进行投影仪标定的系统中,输入参数中的角点图像坐标对于每组标定位姿来说都是一样的(就类似于相机标定法中,每组位姿的角点世界坐标都是一样的),只需要对投射图案进行角点提取,获取的角点坐标就是该参数的值;
角点空间坐标的获取
首先,非常明确的是,单相机是无法恢复图像中任意像素点对应的深度信息的。因此,为了获取投影仪投射的棋盘格角点在相机坐标系下的三维坐标,需要创造回去深度信息的条件。那如何创建呢?毫无疑问,肯定是标定板了。因为,对于已标定的相机来说,我们可以计算出标定板平面上任意一点的坐标。因此,我们只需要将投射图案投射到标定板所在的平面就可获取角点的空间坐标。
matlab投影仪标定方法
在刚刚安装好的matlab中,是没有投影仪标定的的功能的,如果想要使用的话必须要要添加该工具箱(工具箱下载链接见星球)。
在下载好该工具箱后,进行解压缩,并将该工具箱路径添加到matlab的搜索路径即可使用该功能。
使用注意点
1)在matlab命令行中,输入“cam_proj_gui”,即可将投影仪标定模块的ui界面调出来,如下图所示;
2)界面中第一个按钮“Camera Calibration GUI”是用于单相机标定的,而我建议大家是提前标定好的,所以该功能对我们来说没用。点击第二个按钮“Load Camera Calibration”加载自己的相机标定参数(将自己的相机标定参数保存成“Calib_Results.mat”文件放在matlab当前目录中即可); 4)通常每个按钮点击后都会又对应的提示,根据提示即可获取最终标定结果。
大家好,我主要的研究方向有:
1)主流的结构光三维测量方法,包括:线扫,格雷码,相移,散斑等;
2)摄像机标定和投影仪标定;
3)点云处理;
4)图像处理;
5)Halcon应用;
6)机器视觉相机选型。
对以上研究方向感兴趣的朋友可以关注我的微信公众号:
另外,关于以上研究方向的任何问题都可以到我的知识星球进行提问,我将给大家满意的回答 !!!!