簡體   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