利用matlab进行畸变矫正

文章目录

  • 前言
  • 1. 标定采样
  • 2. 计算相机参数
    • 2.1 使用matlab工具计算相机参数
    • 2.2 添加拍摄的棋盘图
    • 2.3 其中的棋盘尺寸为21mm
    • 2.4 得出计算结果cameraParams保存在工作区
  • 3.矫正

前言

目前流行的相机畸变矫正方案就是利用张正友教授的标定法,主要流程就是不同角度拍摄棋盘图,得到相机内参和畸变参数,然后再进行矫正。
matlab提供了应用可以直接做实验得到参数,然后利用matlab提供的库函数直接进行矫正图片。
此外python也有对应的库函数可以进行矫正。

1. 标定采样

棋盘图
利用matlab进行畸变矫正_第1张图片

保存下载打印后用手机从不同角度拍照20张左右

2. 计算相机参数

2.1 使用matlab工具计算相机参数

在这里插入图片描述
利用matlab进行畸变矫正_第2张图片

2.2 添加拍摄的棋盘图

利用matlab进行畸变矫正_第3张图片

2.3 其中的棋盘尺寸为21mm

利用matlab进行畸变矫正_第4张图片

2.4 得出计算结果cameraParams保存在工作区

注意:后边的矫正代码要引用这里算出的cameraParams相关参数。当然也可以导出为mat文件,在代码中进行load
利用matlab进行畸变矫正_第5张图片

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')

你可能感兴趣的:(图像处理,matlab,开发语言,图像处理)