如何在Visual C ++ 2010或2008中使用OpenCV 2.1访问ip camera(compro IP50W)

CvCapture* cam = cvCaptureFromFile("http:\\192.168.0.77"); IplImage* img; img = cvQueryFrame(cam); IplImage* current = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); IplImage* comResult = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); double cam_w = cvGetCaptureProperty(cam, CV_CAP_PROP_FRAME_WIDTH); double cam_h = cvGetCaptureProperty(cam, CV_CAP_PROP_FRAME_HEIGHT); double fps = 10; 

阅读文档 :

 CvCapture* cvCaptureFromFile(const char* filename); 

初始化从文件捕获video。函数cvCaptureFromFile()分配并初始化CvCapture结构,以便从指定文件中读取video流。 支持哪种编解码器和文件格式取决于后端库。

这个函数从文件中读取! 您需要将相机连接到计算机才能从相机中检索相框。

但是 ,如果使用ffmpeg支持编译OpenCV,则可以从网络中的文件读取,但必须在URL中指定文件名

请注意,在下面的代码中,文件名在末尾指定:

 CvCapture* camera = cvCaptureFromFile("http://username:pass@cam_address/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg"); if (!camera) { printf("cvCaptureFromFile failed\n"); exit(1); } 

始终测试OpenCV函数的返回。 如果你不检查它怎么能知道function是否成功,对吧?!

我发现这个网站有助于解决这个问题

它的目的是解决在opencv C ++(windows)中处理FFMPEG解码的问题的简单方法,现在我能够使用highgui从IP摄像头检索图像