ubuntu 使用opencv 获取海康网络摄像头视频流

1. 前言

之前在windows平台下使用opencv获取海康网络摄像头的视频流,但是不管怎么设置都无法登录摄像头,导致无法获取摄像头的视频流,但是换到ubuntu又正常了,主要是设置rtsp的格式,然后调用opencv的获取视频流的接口就行了。

2. 实践

#include 
#include 
#include "HKCapture.hpp"
using namespace cv;
using namespace std;
 
int main()
{
	//参照海康获取网络摄像头视频流的格式
    String url = "rtsp://admin:password@IP:554/Streaming/Channels/101";

    HKCapture cap;

    Mat img = cap.GetFrame(url);
    imshow("img", img);
    waitKey(0);
    return 0;
}

#include 
#include 


using namespace cv;
class HKCapture
{
public:
    Mat GetFrame(String url);
};
#include "HKCapture.hpp"
#include 
#include "string.h"


Mat HKCapture::GetFrame(String url)
{
    //读取视频或摄像头

    VideoCapture capture(url);
    if(!capture.isOpened())
    {
     printf("capture open failed!");
    }
    Mat frame;

    while (true)
    {
        capture >> frame;
        if(frame.empty())
        {
            continue;
        }
        else
        {
            break;
        }
    }   
    // imshow("读取视频", frame);
    // waitKey(30);    //延时30

    return frame;
}

在这里插入图片描述

你可能感兴趣的:(图像处理,OpenCV,C++,opencv,ubuntu,计算机视觉)