日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

海康网路摄像头/监控 Ubuntu 16.04 SDK C++ 实现拍照存档

發布時間:2024/3/24 c/c++ 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 海康网路摄像头/监控 Ubuntu 16.04 SDK C++ 实现拍照存档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

海康網路攝像頭/監控Ubuntu 16.04 SDK C++ 實現拍照存檔

一 SDK環境準備

  • 海康SDK官方網址

  • 硬件: DS-2CD3125F2-I

  • 相機SDK: CH-HCNetSDKV6.1.6.3_build20200925_Linux64

  • 系統: Ubuntu 16.04

  • C++ 會用到的就lib與include檔案, include 在CH-HCNetSDKV6.1.6.3_build20200925_Linux64/consoleDemo/include, lib在CH-HCNetSDKV6.1.6.3_build20200925_Linux64/lib

  • 加入環境, 不懂CMake怎配置,只好亂加至少能make, 我把folder名字換成hikvision_camera_sdk,include拉了出來跟lib同層,將lib的路徑export,
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/hikvision_camera_sdk/lib/HCNetSDKCom:/home/user/hikvision_camera_sdk/lib

  • 海康API說明在設備網絡SDK編程指南(DVR&NVR).pdf 都有, consoleDemo也有范例

  • 二 監控拍圖存影像

    • CMakeLists.txt
    cmake_minimum_required(VERSION 3.0.2) project(hikvision_camera_test) set(CMAKE_CXX_STANDARD 11)link_directories("/home/user/hikvision_camera_sdk/lib/") link_libraries(AudioRender) link_libraries(HCCore) link_libraries(hcnetsdk) link_libraries(hpr) link_libraries(PlayCtrl)include_directories(/home/user/hikvision_camera_sdk/include/ ) add_executable(test_save_img test/test_save_img.cc) target_link_libraries(test_save_img PUBLIC)
    • 拍照存檔
    #include <stdio.h> #include <string.h> #include "HCNetSDK.h" #include <iostream> #include <cstdlib>int main() {NET_DVR_Init();long lUserID;//loginNET_DVR_USER_LOGIN_INFO struLoginInfo = {0};NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};struLoginInfo.bUseAsynLogin = false;// 監控端口struLoginInfo.wPort = 8000;// 監控IPmemcpy(struLoginInfo.sDeviceAddress, "192.168.1.101",NET_DVR_DEV_ADDRESS_MAX_LEN);// 監控賬號memcpy(struLoginInfo.sUserName, "admin", NAME_LEN);// 監控密碼memcpy(struLoginInfo.sPassword, "123456", NAME_LEN);lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);if (lUserID < 0){printf("pyd1---Login error, %d\n", NET_DVR_GetLastError());exit(-1);}NET_DVR_JPEGPARA strPicPara = {0};strPicPara.wPicQuality = 2;strPicPara.wPicSize = 0;int iRet;std::string img_path = "/home/user/Pictures/test.jpg";iRet = NET_DVR_CaptureJPEGPicture(lUserID, struDeviceInfoV40.struDeviceV30.byStartChan,&strPicPara, const_cast<char*>(img_path.c_str()));if (!iRet) {printf("pyd1---NET_DVR_CaptureJPEGPicture error, %d\n",NET_DVR_GetLastError());exit(-1);} else {printf("Save img at %s\n", img_path.c_str());}//logoutNET_DVR_Logout_V30(lUserID);NET_DVR_Cleanup();return 0; }
    • 編譯一下,就可以成功拍照且存檔了

    Troubleshooting

    • undefine reference 或 .so not found 或 pyd1—NET_DVR_CaptureJPEGPicture error, 107=> 沒有link_libraries或沒設定好LD_LIBRARY_PATH
    • can’t find HCNetSDK.h => include_directories 沒設定
    • libcrypto.so.1.0.0 warning跳出多行 => 直接刪掉海康SDK的libcrypto.so.1.0.0

    總結

    以上是生活随笔為你收集整理的海康网路摄像头/监控 Ubuntu 16.04 SDK C++ 实现拍照存档的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。