因此,我正在从廉价的USB网络摄像头捕获视频。然后,我从该提要中计算光流量。我终于将这些optic-flow measurements
用于(monocular
)机器人导航。我已经校准了相机,并且在两个单独的intrinsic
文件中具有distortion
和xml
参数。
我的问题是,现在如何在视频捕获代码中使用这些参数。如果有人可以使用code/pueudo-code
展示它,那将非常有帮助。
最佳答案
首先,将固有失真加载到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中找到一些示例代码,这通常是在校准程序中。
关于opencv - 在实时视频捕获应用程序中使用相机校准参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19481212/