我正在使用 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/

10-11 01:51