相机标定板制作
https://calib.io/pages/camera-calibration-pattern-generator
可输入行和列格子数,我输入的为6×8,打印在A4纸上。约210mmx300mm 大小。棋盘格大小为120mmx160mm。棋盘格左下面还会输出 www.calib.io|6×8|Checker Size: 21.36 mm(游标卡尺实测纸上为20mm)
输出PDF,按实际大小打印后量尺寸是否正确或调整大小再打印,我的是生成20mm,打印出来为19mm,我通过几次调整,发现调整生成21.36mm,打印出来为20.00mm,在相机标定中需要输入格子尺寸大小,按量的尺寸输入即可。
OpenCV安装后也有标定板图片,但没有试着打印,因为不好调节大小,另外发现它长宽格子一样多,不好区分,就没有用如下的图片:
D:\work\cprj\opencv-3.4.16\samples\data\chessboard.png
使用MATLAB 进行相机标定方法
https://www.bilibili.com/video/BV1iW4y1F7nx/?spm_id_from=333.788.recommend_more_video.-1&vd_source=1b408658940de6c4f7f8c44949f19ad9
Add images (要求大小一致,我用手机拍了,又两种:3456像素和4608像素),导入3456像素的15张,reject了3张拍摄稍有不清楚的,结果如下:
选择参数:
我下面的MATLAB版本为R2015a, 上面Bili教学的为R2020a,版本有点差异,下面缺少如相机模式的选择项。
选择径向好畸变参数为3个和选择是否计算切向畸变。
点击开始标定后
删除重投影较大的图像
选中重投影较大的柱状图,找到对应图片,右击移除该图片,该步骤非必须。
点击Show Undistorted按钮,查看畸变矫正前后图像(我的版本没有,步骤略)
点击导出标定相机参数到工作区
返回MATLAB主界面,找到相机参数
主要参数:
我的手机
焦距(fx,fy)
主点(u0,v0)
径向畸变(k1,k2,k3)
切向畸变(p1,p2)
IntrinsicMatrix:
注:MATLAB中的内参矩阵转置了,u0,v0由第3列变为第3行。
保存相机参数
matlab.mat