在实时视频捕获应用程序中使用相机校准参数

Posted

技术标签:

【中文标题】在实时视频捕获应用程序中使用相机校准参数【英文标题】:Using camera calibration parameters in a real-time video capture application 【发布时间】:2013-10-20 18:31:32 【问题描述】:

所以,我正在从廉价的 USB 网络摄像头捕捉视频。然后我从这个提要计算光流。我终于将这些optic-flow measurements 用于(monocular)机器人导航。我已经校准了我的相机,并将 intrinsicdistortion 参数放在两个单独的 xml 文件中。

我的问题是,我现在如何在我的视频捕获代码中使用这些参数。如果有人可以使用code/pueudo-code 来展示这一点,那将非常有帮助。

【问题讨论】:

【参考方案1】:

首先,在xml文件中加载内在失真。

然后,使用 blow 之类的代码对原始图像进行校正。

IplImage* mapx = cvCreateImage( cvGetSize(image), IPL_DEPTH_32F, 1 );
IplImage* mapy = cvCreateImage( cvGetSize(image), IPL_DEPTH_32F, 1 );
  cvInitUndistortMap(
    intrinsic,
    distortion,
    mapx,
    mapy
  );
IplImage *t = cvCloneImage(image);
cvShowImage( "Raw Video", image ); // Show raw image
cvRemap( t, image, mapx, mapy );     // Undistort image
cvShowImage("Undistort", image);     // Show corrected image

如果你已经安装了OpenCV,可以在opencv2.4.x\samples\cpp中找到一些示例代码,这部分经常在校准程序中。

【讨论】:

以上是关于在实时视频捕获应用程序中使用相机校准参数的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 框架拍摄实时视频

使用 OpenCV 从 youtube 捕获实时视频

在android中使用opencv捕获视频帧

ARtoolkit 加载从索尼 4k 相机捕获的视频文件

从实时视频设备捕获图像以供基于 Java 的应用程序使用的最佳方法是啥?

来自 GigE 相机的实时视频