繁体   English   中英

使用OpenCV从IP摄像机获取高分辨率图像

[英]Take high resolution image from ip camera using opencv

我有一个网络摄像机。 它允许我使用两种不同的编码类型,即h264和mjpeg,其最佳分辨率为1920x1080。

我使用iSpy软件查找相机的URL地址。 它可以工作并拍照,但重新分配分辨率为640 * 360。

这是我的代码:

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

int main()
{
    cv::VideoCapture vcap;

    const std::string videoStreamAddress = "rtsp://admin:admin@192.168.0.120/snl/live/1/2/stream1.cgi";

    if (!vcap.open(videoStreamAddress))
    {
        printf("camera is null\n");
        return -1;
    }
    else
    {
        vcap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
        vcap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

        cv::Mat image;
        vcap.read(image);
        cv::imshow("image",image);
        cv::imwrite("image.jpg", image);
    }

    cv::waitKey(1000);
    return 0;
 }

如何拍摄更高质量的图像。 我不知道问题出在我的相机,URL或代码上。

我在Windows 7上使用opencv 2.4。

任何帮助,将不胜感激

我在回答我自己的问题。

起初我以为问题出在OpenCV上,因为我发现了很多有关设置摄像机参数失败的线程。 似乎vcap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);vcap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080); 效果不好。

无论如何,我已经在其网站上检查了我的相机开发文档,并找到了H.264视频流的另一个URL。 我已经更改了网址,并且可以使用。 它需要1920X1080的图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM