我正在使用 Opencv (C++) 开发实时光流应用程序。 我不明白如何捕获两个连续的帧来应用 Lucas-Kanade 跟踪方法。
这行不通:
CvCapture* capture = cvCaptureFromCAM(1);
IplImage *imgA=cvQueryFrame( capture );
IplImage *imgB=cvQueryFrame( capture );
这个我也试过,但是程序没有退出循环:
CvCapture* capture = cvCaptureFromCAM(1);
IplImage *imgA=cvQueryFrame( capture );
IplImage *imgB=cvCreateImage(cvSize(imgA),IPL_DEPTH_32F,3);
while(cvNorm(imgA,imgB)==0)
imgB=cvQueryFrame( capture );
有什么想法吗?我希望这不是一个愚蠢的问题,但我怀疑它是:/提前抱歉。 谢谢!!
最佳答案
cv::Mat m1, m2;
cv::VideoCapture cap(0);
if(!cap.isOpened())
;// ... throw error here
cap >> m1;
cap >> m2;
// m1 and m2 now contain consecutive frames.
关于c++ - Opencv 从网络摄像头捕获的连续帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5829385/