【问题标题】:Controlling the PTZ function of IP camera using C++使用 C++ 控制 IP 摄像机的 PTZ 功能
【发布时间】:2018-03-15 10:14:16
【问题描述】:

我正在处理一个需要通过 UI 控制我的 IP 摄像机的 PTZ 功能的项目。我目前正在使用 D-Link DCS-5020L 云摄像头、Microsoft Visual Studio 2017OpenCV 3.3 进行设置。

我还是 c++ 和 OpenCV 的新手,但我的项目需要使用它。我可以访问相机源,但我不确定如何通过 OpenCV 使用 C++ 代码控制相机的功能,或者是否需要 OpenCV。

是否有 C++ 代码来控制 IP 摄像机的 PTZ 功能?

这是我获得视频输出的代码,如有必要。

// VIDEO CAPTURE //

Mat frame;

VideoCapture cap("http://username:password@IPADDRESS:PORT/video.cgi?resolution=640x360&req_fps=30&.mjpg");

if (!cap.isOpened())    //EXIT PROGRAM IF FAILED
{
    cout << "CAMERA UNAVAILABLE" << endl;
    return -1;
}
while (1)
{
    bool bSuccess = cap.read(frame);    //READ NEW FRAME FROM VIDEO

    if (!bSuccess)      //BREAK LOOP IF FAILED
    {
        cout << "UNABLE TO DISPLAY VIDEO" << endl;
        break;
    }
}

感谢任何帮助。谢谢。

【问题讨论】:

    标签: c++ opencv visual-c++ controls ip-camera


    【解决方案1】:

    通常,PTZ 功能是在 cam 中运行的服务器上实现的软件。 一些较旧的相机曾经附带一个 activeX 控件。 可以通过获取或发布到相对于相机的 url 来访问这些功能。

    对于您的相机,您应该能够在以下网址上发布控件:

    http://<ip>/pantiltcontrol.cgi
    
    Available controls: 
    POST parameters
    PanSingleMoveDegree (default 5)  
    TiltSingleMoveDegree (default 5) 
    PanTiltSingleMove
    
    Values for PanTiltSingleMove (based on the web UI controls):
    Top 1
    Top right   2
    Right   5
    Bottom right    8
    Bottom  7
    Bottom left 6
    Left    3
    Top left    0
    Home (reset)    4
    

    所以一个典型的使用 curl 改变云台的帖子示例应该是这样的:

    curl --user <username>:<password> --user-agent "user" --data "PanSingleMoveDegree=5&TiltSingleMoveDegree=5&PanTiltSingleMove=5" http://<ip>/pantiltcontrol.cgi
    

    为了使用您的网络浏览器进行快速测试,您应该能够使用获取以下结构化 url 的请求来做同样的事情:

    http://<username>:<password>@<ip>/pantiltcontrol.cgi?PanSingleMoveDegree=5&TiltSingleMoveDegree=5&PanTiltSingleMove=5
    

    现在,回到你的问题。在 C++ 中控制 PTZ 所需要做的就是通过网络查询提到的 url。所以这应该是你的搜索点。

    此主题的许多答案已经在堆栈溢出。这是我在谷歌搜索“c++ http get post”时得到的第一个结果。 How do you make a HTTP request with C++?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多