网络上有一个文件,它每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;
}
但是这段代码只读了一次。
答案 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);
}