求鱼眼镜头全景图像校正算法的matlab代码
1个回答
展开全部
(一) opencv里面摄像机标定计算内参数矩阵用的是张正友标定法,非常经典,MATLAB标定工具箱也是用的该方法。具体的标定过程可以参见张正友的原文: http://research.microsoft.com/en-us/um/people/zhang/Papers/TR98-71.pdf。或者参考博文:http://hi.baidu.com/chb_seaok/item/62179235eef8873c2e20c40b
(二) 基于opencv的摄像机标定用的主要函数有:
cvFindChessboardCorners:提取一幅图片上的所有角点。
cvFindCornerSubPix:亚像素精确化。
cvDrawChessboardCorners:显示角点。
cvCalibrateCamera2:标定摄像机参数,求出内参数矩阵,畸变系数,旋转向量和平移向量。
校正主要用的函数有2个:
cvInitUndistortMap:根据cvCalibrateCamera2计算出来的内参数矩阵和畸变系数计算畸变映射。
cvRemap:根据畸变映射校正图像。
(三)详细的过程及参考书籍:
1、《基于OpenCV的计算机视觉技术实现》 陈胜勇,刘盛编著 科学出版社,2008;(该书用OpenCV 1.0库,第14章详细介绍如何用opencv进行摄像机标定,包括摄像机标定的原理,opencv相关库函数详细的介绍以及例子)
2、《学习OpenCV(中文版)》 于仕琪译 清华大学出版社,2009;(OpenCV 2.0库,第11、12章详细介绍如何进行摄像机标定以及三维重建)
3、OpenCV的标定参数中,对于镜头畸变采用的方法是Brown博士在71年发表的文章中提到的。
(四)MATLAB标定也在这里提一下:
http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples,该网站有很详细的使用说明
matlab标定工具箱来进行标定,它也是基于张正友的平面标定方法的,有误差分析、标定结果三维重建、重投影计算角点等功能 。
Matlab中的镜头畸变参数采用基于Heikkil博士提出的方法,将非线性干扰因素引入到内外参数的求解过程。标定的过程需要手动选取四个角点,标定图片拍摄的多的话,比较麻烦。
(五)实验结果
自己买了个手机鱼眼镜头,拍摄了16幅标定板图片。注意拍摄的角度不要和成像平面平行。
示例程序049--摄像机标定和鱼眼校正
(二) 基于opencv的摄像机标定用的主要函数有:
cvFindChessboardCorners:提取一幅图片上的所有角点。
cvFindCornerSubPix:亚像素精确化。
cvDrawChessboardCorners:显示角点。
cvCalibrateCamera2:标定摄像机参数,求出内参数矩阵,畸变系数,旋转向量和平移向量。
校正主要用的函数有2个:
cvInitUndistortMap:根据cvCalibrateCamera2计算出来的内参数矩阵和畸变系数计算畸变映射。
cvRemap:根据畸变映射校正图像。
(三)详细的过程及参考书籍:
1、《基于OpenCV的计算机视觉技术实现》 陈胜勇,刘盛编著 科学出版社,2008;(该书用OpenCV 1.0库,第14章详细介绍如何用opencv进行摄像机标定,包括摄像机标定的原理,opencv相关库函数详细的介绍以及例子)
2、《学习OpenCV(中文版)》 于仕琪译 清华大学出版社,2009;(OpenCV 2.0库,第11、12章详细介绍如何进行摄像机标定以及三维重建)
3、OpenCV的标定参数中,对于镜头畸变采用的方法是Brown博士在71年发表的文章中提到的。
(四)MATLAB标定也在这里提一下:
http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples,该网站有很详细的使用说明
matlab标定工具箱来进行标定,它也是基于张正友的平面标定方法的,有误差分析、标定结果三维重建、重投影计算角点等功能 。
Matlab中的镜头畸变参数采用基于Heikkil博士提出的方法,将非线性干扰因素引入到内外参数的求解过程。标定的过程需要手动选取四个角点,标定图片拍摄的多的话,比较麻烦。
(五)实验结果
自己买了个手机鱼眼镜头,拍摄了16幅标定板图片。注意拍摄的角度不要和成像平面平行。
示例程序049--摄像机标定和鱼眼校正
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询