C++ 使用cv::calibrateCamera()获得的摄影机矩阵结果是否与使用cv::fisheye::calibrate()获得的结果相同
我正在进行一个校准鱼眼相机的项目,主要问题是我想保存校准中获得的参数 使用C++ 使用cv::calibrateCamera()获得的摄影机矩阵结果是否与使用cv::fisheye::calibrate()获得的结果相同,c++,opencv,camera-calibration,fisheye,camera-matrix,C++,Opencv,Camera Calibration,Fisheye,Camera Matrix,我正在进行一个校准鱼眼相机的项目,主要问题是我想保存校准中获得的参数 使用cv::calibleCamera(),相机矩阵是一个cv::Mat,使用cv::FileStorage我可以轻松读写。 使用cv::fisheye::calibrate()相机矩阵是cv::Matx33d,我无法使用cv::FileStorage使用它 我阅读了openCV文档,两种方法中的参数都是相同的,但我想知道您是否获得了相同的结果,因为传递的参数可能是相同的,但方法中的算法可能会改变 谢谢系数是一样的,但是得到它
cv::calibleCamera()
,相机矩阵是一个cv::Mat
,使用cv::FileStorage
我可以轻松读写。
使用cv::fisheye::calibrate()
相机矩阵是cv::Matx33d
,我无法使用cv::FileStorage
使用它
我阅读了openCV文档,两种方法中的参数都是相同的,但我想知道您是否获得了相同的结果,因为传递的参数可能是相同的,但方法中的算法可能会改变
谢谢系数是一样的,但是得到它们的方程式是不同的。您需要了解opencv中鱼眼相机模型和针孔相机模型之间的区别 谢谢黑格的快速回答。所以,我会去阅读这些差异,但总的来说,我会得到相同的相机矩阵,但得到它的方程是不同的,对吗?你会得到两个矩阵,一个是3by3,有fx,fy,cx,cy,其中cx和cy是相机传感器的主要中心,fx,fy是水平轴和垂直轴上的焦距。第二个矩阵是将图像映射到矩形的失真系数。在针孔相机模型中,有k1 k2 k3 k4 p1 p2 p3 p4 b1 b2系数,用于描述径向和切线畸变。对于鱼眼相机,您有k1 k2 k3 k4,畸变方程的描述与针孔模型非常不同。