所以,我正在从廉价的USB网络摄像头中捕捉视频。然后我从这个饲料计算光流。我终于使用这些optic-flow measurements
进行(monocular
)机器人导航。我已经校准了相机,并在两个单独的intrinsic
文件中包含distortion
和xml
个参数。
我的问题是,如何在我的视频捕获代码中使用这些参数。如果有人可以使用code/pueudo-code
来表示,那将非常有帮助。
答案 0 :(得分:1)
首先,在xml文件中加载内在失真。
然后,使用像打击这样的代码来纠正原始图像。
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中找到一些示例代码,这部分通常在校准程序中。