使用OpenCV以指定的间隔读取图像

时间:2011-08-16 16:43:37

标签: opencv

网络上有一个文件,它每50毫秒刷新一次,我想每50ms读一次,这是我的代码:

int main(int argc, char* argv[])
{
int c;
    IplImage *img;
    CvCapture* capture = cvCaptureFromFile("http://192.168.1.3:8020/image.jpg");
    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
    cvMoveWindow("mainWin", 5, 5);
    while(1)
    {
        img=cvQueryFrame(capture);
        cvShowImage("mainWin", img );
        c=cvWaitKey(10);
        if(c == 27)
        break;
    }
 return 0;

}

但是这段代码只读了一次。

1 个答案:

答案 0 :(得分:0)

cvCaptureFromFile用于从视频文件中读取,如果你传递一个图像,它假定它不能改变,所以总是返回相同的图像

我不知道cvLoadImage是否会从您的openCV版本的URL中读取,但请尝试:

cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin", 5, 5);
while(1)
{
    CvCapture* capture = cvCaptureFromFile("http://192.168.1.3:8020/image.jpg");
    img=cvQueryFrame(capture);
    cvShowImage("mainWin", img );
    c=cvWaitKey(10);
    cvReleaseCapture(&capture);
 }