当前位置:   article > 正文

C/C++ OpenCV调用海康摄像头_linux 海康sdk 读取网络摄像头 c++

linux 海康sdk 读取网络摄像头 c++

最近需要用c++实现opencv调用海康ipc。原来python中是这样写的。

  1. source = "rtsp://admin:xxxxxxxx@192.168.100.38:554/h265/ch1/main/av_stream/1" # 摄像头的rtsp地址
  2. cam = cv2.VideoCapture(source)

想在c++中也这样调用,但是网上找到的都是 这样的例子

  1. #include <opencv2\opencv.hpp>
  2. using namespace cv;
  3. using namespace std;
  4. int main()
  5. {
  6. //读取视频或摄像头
  7. VideoCapture capture(0);
  8. while (true)
  9. {
  10. Mat frame;
  11. capture >> frame;
  12. imshow("读取视频", frame);
  13. waitKey(30); //延时30
  14. }
  15. return 0;
  16. }

后来就读取源码发现有这么一段

  1. /** @overload
  2. @brief Open video file or a capturing device or a IP video stream for video capturing with API Preference
  3. @param filename it can be:
  4. - name of video file (eg. `video.avi`)
  5. - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
  6. - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
  7. Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
  8. documentation of source stream to know the right URL.
  9. @param apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
  10. implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
  11. @sa The list of supported API backends cv::VideoCaptureAPIs
  12. */
  13. CV_WRAP VideoCapture(const String& filename, int apiPreference);

上边意思是说

@param  filename可以是:

-视频文件的名称(例如。“video.avi”)

-或图像序列(例如。“img_%02d.jpg”,它将读取“img_0 .jpg, img_01.jpg, img_02.jpg,…”)

-或视频流的网址(例如:protocol://host:port/script_name?script_params|auth`)。

注意,每个视频流或IP摄像机提要都有自己的URL方案。请参阅

文档的源流,以了解正确的URL。   这里就是我们需要的了:)

@param apiPreference首选捕获要使用的API后端。可以用来强制执行特定的阅读器吗

实现如果多个可用:例如cv::CAP_FFMPEG或cv::CAP_IMAGES或cv::CAP_DSHOW。

  1. int main()
  2. {
  3. //读取视频或摄像头
  4. //VideoCapture capture(0);
  5. string source = "rtsp://admin:xxxxx@192.168.100.38:554/h265/ch1/main/av_stream/1"; //摄像头的rtsp地址
  6. VideoCapture capture(source, CAP_FFMPEG);
  7. while (true)
  8. {
  9. Mat frame;
  10. capture >> frame;
  11. imshow("读取视频", frame);
  12. waitKey(30); //延时30
  13. }
  14. return 0;
  15. }

 

OpenCV+海康威视摄像头的实时读取

https://blog.csdn.net/lonelyrains/article/details/50350052

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/738706
推荐阅读
相关标签
  

闽ICP备14008679号