更新时间:2023-03-27
当前版本:
python:3.7.0
opencv:3.4.1
所需库:
海康官网的sdk:CH-HCNetSDKV6.1.9.47_build20221111_win64
swigwin-4.0.2
boost_1_81_0
opencv-swig-master
1. 使用swig编译生成python和c++数据交换需要的.py和.cxx文件
opencv-swig-master\lib
当前路径cmd:
运行
swig -IE:\opencv\build\include -python -c++ HKIPcamera.i
(E:\opencv\build\include为opencv路径)
生成上图的2个文件。
2.生成动态链接库文件,dll
新建一个空项目,并配置以下依赖:include,lib
海康sdk
boost_1_81_0
opencv
python
链接器->输入->附加依赖项中添加:
HCNetSDK.lib
GdiPlus.lib
HCAlarm.lib
HCCore.lib
HCGeneralCfgMgr.lib
HCPreview.lib
PlayCtrl.lib
opencv_world341.lib
编译后生成:
HKIPcamera.dll
HKIPcamera.lib
新建一个文件夹:
把海康sdk的所有文件放置这里:
CH-HCNetSDKV6.1.9.47_build20221111_win64\库文件
然后放置生成的文件:
一共需要的是5个文件:
HKIPcamera.py(第一步生成的py文件)
_HKIPcamera.pyd(第二步HKIPcamera.dll改名为这个)
opencv_world341.dll(opencv依赖dll)
最后放2个openssl库,不加会报错:29
libeay32.dll
ssleay32.dll
调用例子:
import HK.HKIPcamera
import time
import numpy as np
import matplotlib.pyplot as plt
import cv2
ip = str('192.168.1.64') # 摄像头IP地址,要和本机IP在同一局域网
name = str('admin') # 管理员用户名-自己设置
pw = str('123456') # 管理员密码-自己设置
ret = HK.HKIPcamera.init(ip, name, pw)
print(ret)
list = []
num = 1
t = time.time()
if ret:
while (True):
if time.time() - t > 60:
break
frame= HK.HKIPcamera.getframe()
frame= np.array(frame)
cv2.imshow('video', frame)
# 按键盘的esc或者q退出
if cv2.waitKey(27) & 0xFF == 27:
break
HK.HKIPcamera.release()
print('end')
print(len(list))