gpt4 book ai didi

opencv - 如何使 calibrateCamera 仅返回 4 个 distCoeffs

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:38 24 4
gpt4 key购买 nike

calibrateCamera 的定义是:CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints,InputArrayOfArrays 图像点,大小 imageSize,输入输出数组相机矩阵, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs,OutputArrayOfArrays tvecs,int 标志 = 0,TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) );

一些这些参数:

@param distCoeffs 失真系数的输出向量\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ 的 4、5、8 或 12 个元素。

@param flags 不同的标志,可以是零或以下值的组合:- CV_CALIB_RATIONAL_MODEL 系数 k4、k5 和 k6 已启用。为了提供向后兼容性,应明确指定此额外标志以使校准函数使用有理模型并返回 8 个系数。如果未设置该标志,则该函数仅计算并返回 5 个失真系数。

如我们所见,函数 calibrateCamera(...) 返回一个 5*1 distCoeffs Mat,但由于 k_3,它会失真太多,我真的不需要 k_3,好像 k_3 用于 Fisheye Lens,而 cvCalibrateCamera2(...) 只返回一个 4*1 distCoeffs Mat

那么我可以做些什么来处理 calibrateCamera?我搜索了很多但仍然没有想法。

1.jpg

1undistort.jpg

最佳答案

您可以设置标志 cv::CALIB_FIX_K3。这是在我的测试中计算的带有和不带有此标志的 disCoeffs。

{0.456533, 0.377582, 0.0250243, -0.0100882,  0}
{0.425909, 0.169672, 0.0236827, -0.00983692, 0.249512}

但是在我的测试中 undistort image 的结果没有任何区别。

关于opencv - 如何使 calibrateCamera 仅返回 4 个 distCoeffs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com