我是靠谱客的博主 落后奇异果,最近开发中收集的这篇文章主要介绍使用matlab求解镜头畸变参数以及使用opencv进行畸变矫正,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用镜头拍照后,图片会发生畸变,为了在后续处理中得到较好的结果,我们需要使用畸变矫正方法。此处提供一种使用matlab自带工具箱进行畸变的方法。
1.使用标定板拍照,此处多拍一些(最好多于50张,后面会删除);
2.打开matlab,如图中红色线条圈出的地方,此处使用matlab2016b
3.打开存放照片的文件夹,全部选中,导入图片
4.此处填写标定板方块边长,我们使用的是30mm的
5.处理前调整红色区域选项,然后点击Calibrate
6.
7.处理过后的图片如下,右上侧已经经过修改
8.处理完后点击Export Camera Parameters(就是绿色对勾)就可以导出数据,可以在matlab的工作区看见,右侧标出的是以后主要用到的数据
9.在使用opencv中的undistort进行畸变矫正时,需要使用8个参数即fc1, fc2, cc1, cc2, kc1, kc2, kc3, kc4;
RadialDistorion中的参数分别是:kc1,kc2,kc5(不常用)
TangentialDistortion中的参数分别是:kc3,kc4
IntrinsicMatrix中的参数分别是:
fc1 不用 0
不用 fc2 0
cc1 cc2 1
opencv的畸变矫正程序如下:
double fc1, fc2, cc1, cc2, kc1, kc2, kc3, kc4;
fc1 = ;
fc2 = ;
cc1 = ;
cc2 = ;
kc1 = ;
kc2 = ;
kc3 =;
kc4 =;
Mat intrinsic_matrix = (Mat_(3, 3) << fc1, 0, cc1, 0, fc2, cc2, 0, 0, 1);
Mat distortion_coeffs = (Mat_(1, 4) << kc1, kc2, kc3, kc4);
//矫正
undistort(Img,ImgUndistort,intrinsic_matrix,distortion_coeffs);
output_image = ImgUndistort;

最后

以上就是落后奇异果为你收集整理的使用matlab求解镜头畸变参数以及使用opencv进行畸变矫正的全部内容,希望文章能够帮你解决使用matlab求解镜头畸变参数以及使用opencv进行畸变矫正所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部