1. 前言
之前在windows平台下使用opencv获取海康网络摄像头的视频流,但是不管怎么设置都无法登录摄像头,导致无法获取摄像头的视频流,但是换到ubuntu又正常了,主要是设置rtsp的格式,然后调用opencv的获取视频流的接口就行了。
2. 实践
#include <opencv2/opencv.hpp>
#include <string>
#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 <opencv2/opencv.hpp>
#include <string>
using namespace cv;
class HKCapture
{
public:
Mat GetFrame(String url);
};
#include "HKCapture.hpp"
#include <string>
#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;
}
版权声明:本文为weixin_41552975原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。