Matlab Camera Calibrator 工具箱使用 & opencv undistort利用参数校正畸变

 

 Matlab Camera Calibrator 工具箱使用方法参考:如何利用Matlab APPS camera calibrator 测相机内部参数!!_既然如此的博客-CSDN博客

opencv undistort 函数使用接口说明:opencv-undistort_鱼险胜的博客-CSDN博客_cv undistort

畸变校正详解:[图像]畸变校正详解_祥知道的博客-CSDN博客_畸变校正


一、Matlab识别的参数与opencv需要的格式不同,需要转换

 

 要把上面的矩阵改为:[k1,k2,p1,p2,k3]作为输入和输出。

转换代码

%% matlab校正参数,矩阵转置,,k1,k2,p1,p2,k3. matlab格式转Opencv格式
% https://blog.csdn.net/haronchou/article/details/125758013
clear;clc;
load('12个相机原始校正参数_demo.mat');        %有12个变量,inf1~inf6, vis1~vis6

%% 正确的借鉴
for n=1:6
    % 输入变量有cameraParams的s
    TempVis = eval(['cameraParams_vis',num2str(n)]); %每次获取一个变量
    Rv = TempVis.RadialDistortion;             %i
    Tv = TempVis.TangentialDistortion;      %i
    strOutNameVis.IntrinsicMatrix = TempVis.IntrinsicMatrix';%i
    strOutNameVis.RTDistortion = [Rv(1),Rv(2),Tv(1),Tv(2),Rv(3)];
    % 输出变量没有cameraParam的s
    eval(['cameraParam_vis',num2str(n),'=','strOutNameVis',';']);
    
    TempInf = eval(['cameraParams_inf',num2str(n)]); %每次获取一个变量
    R = TempInf.RadialDistortion;             %i
    T = TempInf.TangentialDistortion;      %i
    strOutNameInf.IntrinsicMatrix=TempInf.IntrinsicMatrix';%i
    strOutNameInf.RTDistortion = [R(1),R(2),T(1),T(2),R(3)];
    eval(['cameraParam_inf',num2str(n),'=','strOutNameInf',';']);
end

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值