c++ - 使用 OpenCV 消除视频帧失真

标签 c++ opencv video-processing

一段时间以来,我一直在尝试使用 OpenCV2 校准我的相机。我在整个互联网(尤其是文档)中搜索了一些现有代码,这些代码可以为我的简单问题提供答案,但一无所获。它可能对其他人有用!

我关注了this tutorial生成一个 .xml 文件,其中包含 undistort 函数的所有内容 (here it is)。

我的问题是如何我应该使用undistort(...):

  • 什么矩阵对应于 undistort 的哪个参数?

  • 我是否必须在每个新帧调用 undistort (object : Mat) 或者 C++ 中有一个方法以便在相机上执行一次 (object : 视频捕捉) ?

  • 是否有任何工具或 OpenCV 方法可以使用 .xml maxtrix 并为我们完成它?

PS:如果我们设法做到这一点,我会在这里为社区上传一些代码,如果这样的工具尚不存在的话。

最佳答案

内嵌答案:

  • 什么矩阵对应于 undistort 的哪个参数?
    • 匹配名称:XML中的Camera_Matrix为undistort中的cameraMatrix,Distortion_Coefficients为distCoeffs k1, k2, p1, p2, k3
  • 我是否必须在每个新帧(对象:Mat)调用 undistort 或 C++ 中有一个方法以便在相机(对象:VideoCapture)上执行一次?
    • AFAIK 是的,没有办法将不失真推送到相机的 DSP
  • 是否有任何工具或 OpenCV 方法可以为我们处理 .xml maxtrix?

关于c++ - 使用 OpenCV 消除视频帧失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21142351/

相关文章:

c++ - 在 C++ 中链接到 libredwg 不起作用

c++ - 如何获得路径的正确大小写?

c++ - 无法通过 cv::imshow() 显示窗口。我错过了什么?

opencv - 使用OpenCV更改视频帧中的位

c++ - map::erase 如何知道间隔是否有效?

java - OpenCV 相机图像显示偏蓝

opencv - 使用 Opencv C++ 进行模板匹配

video - 将任何视频转换为 iPhone - 转码逻辑/算法?

java - 实时视频渲染

c++ - 找出指针和结构