马春杰杰博客
致力于深度学习经验分享!

[mcj]利用MATLAB进行相机标定,附源码!

前面写了关于c++的代码,以及python的,后来发现MATLAB也可以,并且更简单。代码如下:

会生成两个图,一个是标定图片的空间位置

[mcj]利用MATLAB进行相机标定,附源码!

另一个是每张图片的重投影误差

[mcj]利用MATLAB进行相机标定,附源码!

图片最好准备多点,实测MATLAB会剔除一些图片。

[mcj]利用MATLAB进行相机标定,附源码!

仔细阅读了OpenCV的说明之后你会大概明白畸变参数,总共有五个,径向畸变3个(k1,k2,k3)和切向畸变2个(p1,p2)。
径向畸变

[mcj]利用MATLAB进行相机标定,附源码!

切向畸变

[mcj]利用MATLAB进行相机标定,附源码!

以及在OpenCV中的畸变系数的排列(这点一定要注意k1,k2,p1,p2,k3),千万不要以为k是连着的。

[mcj]利用MATLAB进行相机标定,附源码!

并且通过实验表明,三个参数的时候由于k3所对应的非线性较为剧烈。估计的不好,容易产生极大的扭曲,所以我们在MATLAB中选择使用两参数,并且选择错切和桶形畸变

可以看到workspace已经生成结果了~

[mcj]利用MATLAB进行相机标定,附源码!

第三个即为相机参数,打开看看:

[mcj]利用MATLAB进行相机标定,附源码!

里面的RadialDistortion对应k1,k2,k3设置为0了。
TangentialDistortion对应p1,p2。

IntrinsicMatrix对应内参,注意这个和OpenCV中是转置的关系,注意不要搞错。

还有内参矩阵,注意这是转置的:

[mcj]利用MATLAB进行相机标定,附源码![mcj]利用MATLAB进行相机标定,附源码!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » [mcj]利用MATLAB进行相机标定,附源码!

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册