为什么这个lib目录已经添加到了环境变量也还是找不到这些dll,我看网上资料说python会优先加载Scripts下的dll,然后是环境变量和项目根目录下的dll,我也使用sys.path.append()将上图lib文件夹添加到环境变量中也依旧报错找不到dll,最后也没整明白为什么不行。
在将18个dll放进根目录之前,我首先用VS2017创建一个新的控制台项目,按编译dll时的项目属性,将包含目录、库目录等设置好,将HKIPcamera.h和hkipcamera.cpp添加进来,再创建一个main.cpp,main.cpp内容如下:(使用时将ip,用户名,密码改为自己相机的)
#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"
#include <time.h>
using namespace std;
void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser);
void main() {
NET_DVR_Init();
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
NET_DVR_SetExceptionCallBack_V30(0, NULL, g_ExceptionCallBack, NULL);
LONG lUserID;
NET_DVR_USER_LOGIN_INFO struLoginInfo = { 0 };
struLoginInfo.bUseAsynLogin = 0;
strcpy(struLoginInfo.sDeviceAddress, "192.168.1.64");
struLoginInfo.wPort = 8000;
strcpy(struLoginInfo.sUserName, "admin");
strcpy(struLoginInfo.sPassword, "12345");
NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = { 0 };
lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
if (lUserID < 0)
printf("Login failed, error code: %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
LONG lRealPlayHandle;
NET_DVR_PREVIEWINFO struPlayInfo = { 0 };
struPlayInfo.lChannel = 1;
struPlayInfo.dwStreamType = 0;
struPlayInfo.dwLinkMode = 0;
struPlayInfo.bBlocked = 1;
lRealPlayHandle = NET_DVR_RealPlay_V40(lUserID, &struPlayInfo, NULL, NULL);
if (lRealPlayHandle < 0)
printf("NET_DVR_RealPlay_V40 error\n");
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
Sleep(10000);
NET_DVR_StopRealPlay(lRealPlayHandle);
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return;
运行后会报错Login error,29,如果你打开HKIPcamera.cpp,结合海康SDK里的设备网络SDK使用手册.chm,查询NET_DVR_GetLastError返回的错误号29是提示操作设备失败。
bool OpenCamera(char* ip, char* usr, char* password)
lUserID = NET_DVR_Login_V30(ip, 8000, usr, password, &struDeviceInfo);
if (lUserID == 0)
cout << "Log in success!" << endl;
return TRUE;
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return FALSE;
此时从开始配置这个SDK调用环境已经三天过去了,从环境变量到文件名反复核对校验都没法解决这个代号29的操作失败问题。海康的客服打电话让我从官网沟通技术专家,然而排队一下午都没个人工接待,最后一心烦就把SDK所有dll文件放在一起,发现就可以用了……
最后感谢一下以下文章作者分享经验!
https://www.ryannn.com/archives/hikvision
https://blog.csdn.net/c20081052/article/details/95082377
https://blog.csdn.net/GottaYiWanLiu/article/details/106187962
以上为代码开始编写的第一个步骤,就是要建立好相关的结构体,这是海康威视python语言开发中的一个极其重要的环节,如果不知道该怎么编写的话,可以根据给出的JAVA和C++的demo 来编写出python的相应结构体,好了明天我们将进入主体内容的编写环节。下面就是第二个重点,就是需要在HKNETSDK.py里面创建一个结构体,海康给出的里面缺少该结构体的python体。上一章节将海康SDK的一些开发准备已经讲解了一遍,如果还有不清楚的可以向前翻看。需要参考这个指南进行后续的开发。今天进入代码开发阶段。
此贴能起到的作用通过这个帖子,能了解到如何用Python调用海康SDK,实现业务逻辑需要结合哪些资料,这些接口的参数是怎么样的,如何翻译成Python,如何传参,参数中的一些变量,常量可以怎样查找。戳这里获得demo源码开发资源海康威视SDK下载 https://www.hikvision.com/cn/download_61.htmlSDK只有对linux和windows的支持,没有对mac的支...
搜罗了网上一些关于如何在python中实现海康威视相机的连接与画面播放的资料,最直接的方式是通过rtsp流来实现。海康的rtsp协议格式如下(参考:海康相机使用RTSP):rtsp://[username]:[passwd]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream主码流:rtsp://admin:12345@192.168.1.64:55...
这里写自定义目录标题本文参考以下博文加自己的实践,发现有些步骤是不必要的,例如不需要为opencv等第三方库指定路径运行环境:准备工作1、海康SDK下载2、下载安装vcpkg3、安装Swig4、下载OpenCV-swig接口文件
本文参考以下博文加自己的实践,发现有些步骤是不必要的,例如不需要为opencv等第三方库指定路径
https://blog.csdn.net/c20081052/article/details/95082377
https://www.ryannn.com/archives/hi
通过python调用海康威视工业摄像头并进行图像存储问题(数据流获取问题未能解决)
先说情况,本人是做视觉检测的需要高倍率摄像头进行实时检测,也就是需要深度学习进行图片数据处理,但是这个又是python来进行分析,而海康威视主要程序代码是以C为主的,传过来的数据我也尝试的去解析都是不能转化成python的BGR图像。
具体参照了:通过cv2调用海康威视摄像头,但这个不能调用工业摄像头,通过官方给一个400什么软件要激活摄像头,可是却并不能检测到工业摄像头,通过mvs软件调用到摄像头地址进行测试也无法获取到摄
项目中经常需要使用海康的网络摄像头,做视频图像算法经常会用到rtsp流,但是rtsp一般很难保证实时性且解码效率不能保证.通过海康给的python的demo,对模块进行封装以方便python像调用opencv的VideoCaputure一样调用.目录结构如下
├── HKCam.py #自己写的封装
├── HCNetSDK.py # SDK给定
├── PlayCtrl.py #SDK给定
├── lib
│ ├── linux
│ │ ├── HCNetSDKCom
│ │ │...
fRealDataCallBack_V30 = REALDATACALLBACK(_fRealDataCallBack_V30)
DECCALLBACK = CFUNCTYPE(None, c_long, POINTER(c_char), FRAME_INFO, c_long, c_long)
def _fDecCallBack(nPort, pBuf, nSize, pFrameInfo, nR..
3.高实时性,opencv调用rtsp流有3-5秒延迟,不能满足实时要求。
4.海康网络摄像头应用范围广。
5.人工智能基于python语言较多,用python实现可以直接与深度学习对接,促进工业应用。
6.有问题请联系QQ:52185025
7.win10 64位系统
8.使用pycharm打开。
9.工程相关说明请看工程内readme,如有不懂请QQ联系,远程指导。
import cv2
url = "rtsp://admin:tjn12345@192.168.0.64/Streaming/Channels/0"
cap = cv2.VideoCapture(url)
文章目录海康工业相机Python调用实现连续实时拍照前言:参考链接:提前设置:代码:
海康的相机调用简直太复杂了。当然相比point gray fly的相机无法python调用要好很多。
为了将照片调用打包成类,我竟然花了两天时间?
这里做一个简单的记录。希望能给大伙儿一个分享。
参考链接:
海康工业相机Python调用实现拍照
提前设置:
条件:Python+海康官方的mvs文件下的development/samples下的python文件夹