0

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

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

4

1 回答 1

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 中找到,这部分通常在校准程序中。

于 2013-10-21T04:18:21.157 回答