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

歡迎訪問 生活随笔!

生活随笔

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

java

java连接摄像头_Java实现 海康摄像头抓拍图像(示例代码)

發布時間:2024/1/23 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java连接摄像头_Java实现 海康摄像头抓拍图像(示例代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先抱怨一下,打死都想不到,海康的攝像頭SDK居然是一個Java類,還有必須的兩個jar包(jna.jar,examples.jar)。鬼能想得到會這么命名。

下面開始吧。

把從官網下載的SDK(和當前系統對應)解壓,把庫文件整個拷貝到某個目錄(我是D:hiklib),然后把D:hiklib和D:hiklibHCNetSDKCom加入到系統環境變量path中??梢試L試從代碼中把這兩個文件夾加入path,我沒有試成功。

項目引入jna.jar和examples.jar這兩個jar包。注意:一定要用官網SDK里面的,千萬不要用其他版本的jna。

從ClientDemo中把HCNetSDK.java拷貝到自己的項目中(這就是神奇的SDK)。

開始主體,Java代碼:

public class CameraManager {

private static Logger logger = LoggerFactory.getLogger(CameraManager.class);

private static HCNetSDK sdk = HCNetSDK.INSTANCE;

private static NativeLong userId = new NativeLong(-1);//用戶登錄ID,值為0,1,2...

private static NativeLong startChan = new NativeLong(-1); // start channel number

private void login(String ip, short port, String username, String pwd){

//sdk初始化

if (!sdk.NET_DVR_Init()){

logger.error("??礢DK初始化失敗!" + sdk.NET_DVR_GetLastError());

}

//注冊設備

NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();

//登錄

userId = sdk.NET_DVR_Login_V30(ip, port, username, pwd, deviceInfo);

if (userId.intValue() < 0){

logger.error("攝像頭用戶登錄失敗!Err:" + sdk.NET_DVR_GetLastError());

}

startChan.setValue(deviceInfo.byStartChan);

}

public boolean takePic(String ip, short port, String username, String pwd) {

if (userId.intValue() < 0 || startChan.intValue() < 0) {

logger.info("執行海康攝像機登錄,ip[{}],port[{}],username[{}].",ip,port,username);

login(ip,port,username,pwd);

}

logger.info("準備拍照,userId:[{}],startChan:[{}]",userId.intValue(),startChan.intValue());

//拍照

NET_DVR_JPEGPARA strJpeg = new NET_DVR_JPEGPARA();

strJpeg.wPicQuality = 1; //圖像參數

strJpeg.wPicSize = 2;

String filePath = "E:\123q.jpg";

boolean b = sdk.NET_DVR_CaptureJPEGPicture(userId, startChan, strJpeg, filePath);//嘗試用NET_DVR_CaptureJPEGPicture_NEW方法,但是不是報43就是JDK崩潰....

if(!b){//單幀數據捕獲圖片

System.out.println("抓拍失敗!" + " err: " + sdk.NET_DVR_GetLastError());

}

else{

System.out.println("抓拍成功,buffer:"+jpegStringBuffer);

}

return b;

}

public void logout(){

sdk.NET_DVR_Logout(userId);

sdk.NET_DVR_Cleanup();

}

}

完成。以上代碼中我刪除了異常處理。記得加上。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java连接摄像头_Java实现 海康摄像头抓拍图像(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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