使用 opencv 连接网络摄像机

connect to IP camera using opencv

我想用 Microsoft 中的 opencv 2.45 使用我的 Dynacolor IP 摄像头拍照 Visual Studio。

我用iSpy查到了它的ip。这是我的代码。

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/opencv.hpp"

int main()
{
    cv::VideoCapture vcap;
    const std::string videoStreamAddress = "http://Admin:1234@192.168.0.250:80/cgi-bin/jpg/image.cgi";
    if (!vcap.open(videoStreamAddress))
    {
        printf("Camera is null\n");
        return -1;
    }
    else
    {
        cv::Mat image;
        vcap.read(image);
        cv::imshow("image",image);
    }
    cv::waitKey(100);
    return 0
}

这给我一个警告:找不到编解码器参数 <.../.../modules/highgui/src/cap_ffmpeg_impl.hpp:540>,并且相机为空。

我已经阅读了很多关于这个问题的帖子,但我无法解决这个问题。

如有任何帮助,我们将不胜感激。

检查此代码。这个对我有用。请注意地址末尾的“?.mjpg”。我也更改了IP和端口进行测试。

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/opencv.hpp"
#include <cstdio>

int main()
{
    cv::VideoCapture vcap;

    // changed address
    const std::string videoStreamAddress = "http://213.171.96.200/cgi-bin/jpg/image.cgi?.mjpg";
    if (!vcap.open(videoStreamAddress))
    {
        printf("Camera is null\n");
        return -1;
    }
    else
    {
        cv::Mat image;
        vcap.read(image);
        cv::imshow("image",image);
    }
    cv::waitKey(10000);
    return 0;
}