文章目录
前言
目前流行的相机畸变矫正方案就是利用张正友教授的标定法,主要流程就是不同角度拍摄棋盘图,得到相机内参和畸变参数,然后再进行矫正。
matlab提供了应用可以直接做实验得到参数,然后利用matlab提供的库函数直接进行矫正图片。
此外python也有对应的库函数可以进行矫正。
1. 标定采样
棋盘图
保存下载打印后用手机从不同角度拍照20张左右
2. 计算相机参数
2.1 使用matlab工具计算相机参数
2.2 添加拍摄的棋盘图
2.3 其中的棋盘尺寸为21mm
2.4 得出计算结果cameraParams保存在工作区
注意:后边的矫正代码要引用这里算出的cameraParams相关参数。当然也可以导出为mat文件,在代码中进行load
3.矫正
matlab执行以下代码即可完成矫正
%读取原图路径
I=imread('F:\raw\test\Calibration-ZhangZhengyou-Method-master\pic\ceshi\app\IMG_20230509_1445.jpg');
%使用函数undistortImage去畸变
%cameraParams为camera calibrator实验获得的相机相关参数,保存在工作区
[J,newOrigin] = undistortImage(I,cameraParams);
%分别展示畸变前和去畸变的照片
figure
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(J);
%保存去畸变后的照片
imwrite(J.CData,'F:\raw\123.jpg')