1、procamcalib介绍及参考文献
Plane-based calibration of a projector-camera system. GabrielFalcao, Natalia Hurtos, Joan Massich. VIBOT Master 2008.
procamcalib工具箱是在matlab相机标定工具箱Bouguet’s Calibration Toolbox基础上进行二次开发,从而实现对投影仪的标定,所以在具体操作过程中也会和Bouguet’s Calibration Toolbox有重合的步骤,最终都是为了得到内参外参和畸变参数这些信息。
很大一部分使用者的需求是为了用在结构光三维重建领域中,其中很多人更喜欢用光栅相移条纹进行投影仪的标定,我们使用的工具箱不是这种方法,而是投影棋盘格和打印的棋盘格一起联合标定;当然还有另一部分的使用者只是用来矫正投影镜头的畸变,有一部分属于先对相机进行标定然后再进行投仪标定,本文就属于这种。
2、标定准备工作
需要两个工具箱
一个TOOLBOX_calib
一个Revised_ProCamCalib
把刚才两个工具箱的路径加载到里面,这样系统才能识别到
在命令窗口输入:
cam_proj_gui
打开投影仪标定工具箱GUI界面
3、接下来进行相机标定
GUI界面点击Camera Calibration GUI选项,选择图片
具体步骤参考:
线结构光传感器标定(相机标定+结构光标定)完整流程(一)
提取角点后,重复上述步骤
标定完成后
GUI界面点击保存后然后退出,此时相机标定结束
4、接下来进行投影仪标定
加载刚才的相机标定结果,命令窗口显示:
Loading calibration results from Calib_Results.mat
done
使用之前标定相机的相同照片去做投影仪的标定
命令行窗口显示:
Do you want use the same images used for camera calibration to
calibrate the projector? ([]=yes, other=no)
回车默认选择(如果你单独对相机做了标定,此处应重新选择图片)
GUI界面继续选择下一项
命令窗口显示:
You may now run ‘Calibration’ to recalibrate based on this new set of images.
Window size for corner finder (wintx and winty):
wintx ([] = 5) = 20
winty ([] = 5) = 20
Window size = 41x41
此处先回车默认选择前面所有图片,wintx and winty值可以适当改大点,不然可能那捕捉不到角点位置
然后手动选择四个角点,如果识别到的话会自动提取所有角点(注意如果系统不能自动提取角点提醒需要你手动输入X和Y方向方格数量的话一般是你的前面输入的wintx and winty值不太合适;当然也有可能是你图片不够清晰)
依次重复上面的操作直到所有图片完成
注意完成后命令窗口会提示:
Projected image name:
此时要输入投影仪投影的模板图片名称,这张图片也应该放在相同文件夹中才能索引到,我的名称是 pattern.png 然后回车
命令窗口再次出现提示:
Window size for corner finder (wintx and winty):
wintx ([] = 5) =
winty ([] = 5) =
Window size = 11x11
回车选择四个角点,轻车熟路了已经
接下来要注意命令窗口出现:
Size dX of each square along the X direction ([]=30mm) =
Size dY of each square along the Y direction ([]=30mm) =
按理说投影出来的棋盘格没有固定尺寸的,因为每次都要更换不同的位置拍照 ,这里让输入棋盘格XY方向的实际尺寸岂不是很扯淡?
我找到了作者的官方回复,翻译过来意思就是说当时是在Bouguet’s Calibration Toolbox基础上进行二次开发的嘛,相机标定的时候确实需要输入实际尺寸的,他为了省事就没改。。。所以这里写不写尺寸都没影响的。。。
然后这里继续默认回车
If the guessed grid corners (red crosses on the image) are not close to the actual corners,
it is necessary to enter an initial guess for the radial distortion factor kc (useful for subpixel detection)
Need of an initial guess for distortion? ([]=no, other=yes)
回到GUI点击此处
激动人心的时候到了,命令窗口出现投影仪标定参数
标定之后投影仪相对相机的外参矩阵在右侧工作区找: