如何在visual C++2010或2008中使用OpenCV 2.1访问ip摄像头(compro IP50W)

how to access ip camera (compro IP50W) using OpenCV 2.1 in visual C++ 2010 or 2008

本文关键字:ip 访问 摄像头 IP50W compro OpenCV visual C++2010 2008      更新时间:2023-10-16
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);

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

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

但是,如果使用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 failedn");
    exit(1);
}

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

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

它旨在提供一种简单的方法来解决在opencv C++(windows)中处理FFMPEG解码的问题,现在我可以使用highgui 从IP相机检索图像