gpt4 book ai didi

c++ - opencv stereo calibration -> 将相机图像 A 变形为相机图像 B

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:08 33 4
gpt4 key购买 nike

我使用 opencv 为 2 个摄像头(左侧的低分辨率摄像头和右侧的高分辨率摄像头)成功校准了内部参数和外部参数。我从 2 组图像(棋盘图案 - 每个相机大约 20 张图像)进行立体校准。我现在有一个 left.yml、right.yml 和一个 translationRotation.yml。现在我想扭曲/扭曲右图像,使其看起来与左图像相同(透视/失真/等)。我知道我有校准的所有数据,它只是知道如何使用正确的 opencv 函数来执行操作——例如。 warpPerspective、重映射或其他?

背景信息 - 我基本上是用高分辨率 RGB 相机信号(右)替换低分辨率 RGB 相机信号(左)。将 Openframeworks/c++ 与 ofxCv 结合使用。

谢谢。

最佳答案

如果我没理解错的话,你的每台相机都有不同的失真,你想取消其中一个的失真并应用另一个相机的失真。对于不失真部分,这是我过去所做的。

使用 OF ,在设置时,您可以使用 cv::initUndistortRectifyMap 创建失真/不失真贴图,这将为您提供两个 cv::Mat 对象形式的 map 。此函数从校准中接收相机矩阵和畸变系数。

然后您可以使用 cv::remap 应用映射.它将结果存储在它的第二个参数中。

在去畸变后,您需要应用反向映射,以应用其他相机的畸变。您提到的 warpPerspective 函数似乎可以很好地工作,但映射可能是根据您获得的 .yml 文件计算得出的。这只是应用相反射(reflect)射的问题。

使用ofxCV's wrapping在必要时从 ofImage 切换到 Mat,以确保您不会制作不必要的拷贝。

关于c++ - opencv stereo calibration -> 将相机图像 A 变形为相机图像 B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17258148/

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