opencv相机标定

opencv相机标定,第1张

OpenCV相机标定原理及源码分析

OpenCV摄像头标定

《OpenCV:相机标定(自带Demo)》

读OpenCV自带的标定例程“calibration.cpp”感想

OpenCV3学习笔记 】相机标定函数 calibrateCamera( ) 使用详解(附相机标定程序和数据)

opencv角点检测、棋盘格检测、亚像素cvFindCornerSubPix()

圆点标定板的标志点提取、标定实验总结

findCirclesGrid源码分析

相机模型与标定(五)--opencv棋盘格角点检测算法

opencv 摄像头 圆点标定板 findCirclesGrid 使用

相机模型与标定(十二)--opencv圆形标志点检测算法

如果知道图像,不知道相机还怎么通过相机来标定畸变

1、只给定一张图片可以根据图像中相关特征进行标定,比如:图像中的某个物体具有直线性特点。一般是找出本来应当是直线的物体边缘,在其上取若干点,根据这些点将图像中的物体边缘重新校正为直线。简单讲就是利用: line is straight 这个原理。

2、目前最常用的张正友在1998年提出的一种标定方法,是通过二维标定板(平面标定板),根据小孔成像的原理,通过对 reprojection error 最小化进行非线性优化,来实现对相机的标定。并非根据看似高大上的训练集来标定。

当然他写这篇文章的目的不单单是为了校正畸变。畸变参数只是张正友相机标定法所求参数的一部分,即:两个径向畸变系数和两个切向畸变系数。

消除畸变的目的是让相机尽量地逼近针孔相机模型,这样相机成像时直线才会保持其直线性。一般常见的畸变校正算法都是根据这一原理来实现的。

当然,还有二般的情况。比如:图像中压根就没有直线性物体存在。我们该怎么办?还能进行标定吗?

答案是肯定的。可以利用对极约束,对图像畸变进行标定。不过,这需要至少两幅图像,而且这两幅图像必须是同一相机在短时间内拍摄得到。

相机内参数(包括焦距、主点、畸变系数、扭曲因子)是由相机物理属性决定的。

按道理如果不改变相机的物理属性,标定结果应该是不变的。

但是每次标定的结果为什么又会变化呢?

不外有两种原因:

1、相机标定过程中可能受收到很多外部物理因素(像差、散焦、传感器噪声、量化误差等)的影响。

2、所用算法的稳定性较差,当前在相机标定领域公认的健壮性较好的优化算法仍然是bundle adjustment(光束平差法)。

可以从上述两个方面找找每次试验结果会差别很大的原因。

估计是算法的稳定性差的可能性大!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7798288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存