OpenCV 求解 PnP 桶形失真

标签 opencv camera-calibration distortion

我正在使用 OpenCVssolvePnP 来获取相机的姿势/位置。 我通过在已校准并已应用径向和切向畸变修复的图像上使用用户选择的点来执行此操作。

但是,除了图像中选择的点之外,solvePnP() 似乎还采用畸变系数作为输入,我想这意味着 SolvePnP 对作为函数输入给出的点应用畸变修复。

这会在我的程序中产生一个小错误,因为源图像已经发生了桶形扭曲,对吧?

如果是这样,我怎样才能让solvePnP()忽略桶形失真?我可以传递一个失真系数设置为 1 的向量吗?或者我应该将所有值设置为 0? 还有其他方法吗?

最佳答案

过去我刚刚通过了一个空的 cv::Mat

cv::solvePnP(world_points, image_points, camera_mat, cv::Mat(), rotation_vector, translation_vector);

documentation表示如果您传递 NULL,它会将所有系数设置为 0。

关于OpenCV 求解 PnP 桶形失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14502777/

相关文章:

image - 组合相交边界矩形的有效方法

c++ - 通过 OpenCV 的相机标定从一个物体得到两个不同的结果

python - Opencv全向标定校正

java - 无法在 Java 中对我的图像使用鱼眼镜头效果

matlab - 用扭曲的时基拟合正弦波

OpenCV4错误: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope

c++ - Qt+Opencv中导入Gstreamer视频

c++ - 对鱼眼图像进行校准——消除鱼眼效果

opencv - 如何修复HOG以检测场景中的所有人?

OpenCV Remap 形状为map1 (h,w,2) 和形状map2 (h,w)