封装sdk包 c++_海康工业相机SDK开发介绍

news/2024/7/2 1:18:10 标签: 封装sdk包 c++

这篇文章,我来介绍一下海康工业相机SDK的使用方法。如果是老手,你可以跳过,如果是新手,可以看看,欢迎拍砖

要使用海康的工业相机SDK,要先下载 机器视觉工业相机SDK V3.2.0版本Runtime组件包,这里面包含了相机的所有运行时库,安装后运行时环境在C:Program Files (x86)Common FilesMVS目录下,里面包括了各种海康SDK运行时库以及GenICam相关的库文件。

7311a180bca096be8020acaa5e0d3c1f.png

下载MVS和SDK

下载机器视觉工业相机客户端MVS3.1.0后安装,其实MVS是根据相机SDK做的一个应用软件开发,注意安装的时候选择开发者模式。安装好后在目录下D:ProgramFilesMVSMVSDevelopment中有SDK开发相关文档

7f23d5fc053294a5559f0051b4feeca7.png

Development目录

Bin 下为C#写的一个demo。Documentations中为各种示例,DotNet为调用的程序集, 分为32、64、AnyCPU的程序集,这个程序集就是把C接口通过DllImport转到C#调用的简单封装,Includes为C++开发所需要的头文件,Libraries为C++开发的库文件,Samples中为各种编程语言以及常用的算法工具(HalconOpencvLabView)提供的demo,ThirdPartyPlatformAdapter为其他第三方算法工具提供的驱动,可以通过对应的算法工具取流。

在这里我以C接口代码说明,C接口和C#接口不同就是,在接口后面增加了一个_NET,我一般使用C接口方式。

设备连接流程

761442a1437e4a43dd57e8cabb15e84c.png

设备连接流程

主动取流流程

主动取流需要调用 MV_CC_GetOneFrameTimeout接口主动获取图像数据,我一般是开一个线程,在接收到下位机信号后调用这个接口,然后加入到缓存,供算法调用。

7eb4537941f290e5fdcd30b470d21560.png

主动取流

回调取流流程

回调取流通过MV_CC_RegisterImageCallBackEx把数据通过回调函数给到注册者。

4c92d785047df2ef521650b88a52422c.png

回调取流

MV_CC_Set*MV_CC_Get*的第一个参数是一个字符串类型的,这个类型是相机的一个属性,可以在DocumentationsMvCameraNode.xlsx中查找,比如ExppsureTime为曝光节点,数据类型是Float,单位是微秒,R/W为此特性可读可写,这个特性是GenICam中规定的。

c6dea77ed9e1d9dffaa9b7aa505bfc81.png

对开发者来说,这些特性在MVS中右侧的属性树中查看到,如果想看更多的知识,如下是我自己本地的一个虚拟相机,右侧的属性是我虚拟相机根据GenICam来进行写的一个XML描述文件,正常来说,相机的XML描述文件有一万多行,MVS和SDK中只会把一部分属性列举出来,并非所有属性。

d972e3a2b0fd75e70d0b0692d4890294.png

MVS枚举虚拟相机

1b725a7ac22477ac03a79e7502a24fc5.png

相机XML描述文件


http://www.niftyadmin.cn/n/712308.html

相关文章

理解Java动态代理(1)—找我还钱?我出钱要你的命

代理模式是最常用的一个设计模式之一,理解起来也是很简单,一张图足以说明了,LZ就不废话了。 至于代理模式能干嘛也不是LZ今天想说的,今天主要想简单介绍下JAVA里面的动态代理。“动”当然是相对“静”来说的,那么什么是…

GukiZ and Binary Operations CodeForces - 551D (组合计数)

大意: 给定$n,k,l,m$, 求有多少个长度为$n$, 元素全部严格小于$2^l$, 且满足 的序列. 刚开始想着暴力枚举当前or和上一个数二进制中$1$的分布, 但这样状态数是$O(64^3)$在加上矩阵幂的复杂度显然不行. 看了题解发现可以按每位单独来考虑. #include <iostream> #include &…

学习笔记:JAVA RMI远程方法调用简单实例

RMI的概念 RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制&#xff0c;某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱&#xff0c;是建立分…

一步一步学习Redis——简介与安装

1.Redis REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库…

廉洁修身论文2000字_论文3000字符是几个版面

点击上方蓝字 关注我们1论文发表中字数要求是一项最基本要求&#xff0c;字数的多少关系到文章见刊占用的版面&#xff0c;很多作者在发表前也会对自己的文章以及所占版面进行大致的估算&#xff0c;控制字数对于作者和期刊来说都是很有必要的&#xff0c;论文3000字符是几个版…

jforum mysql_在linux環境下搭建JDK+JAVA+Mysql,並完成jforum的安裝

參考鏈接&#xff1a;YUM安裝MySQL和JDK和Tomcat&#xff1a;http://cmdschool.blog.51cto.com/2420395/1696206/因為我使用的是普通用戶lily&#xff0c;如果使用root的話&#xff0c;所有命令不用加sudo即可。今天先不加圖&#xff0c;改天再試試可以的話&#xff0c;再補充。…

希捷正式发布12TB硬盘:二代充氦 单碟1.5TB

在透露已经出样之后&#xff0c;希捷今天正式发布了新款Enterprise Capacity v7 12TB硬盘&#xff0c;这也是希捷的第二代充氦技术硬盘&#xff0c;面向企业和云计算市场。相比于此前的Enterprise Capacity v6 10TB&#xff0c;新硬盘增强了充氦技术&#xff0c;单盘封装多达八…

NTF服务器搭建及其遇到问题

1&#xff0c;服务器端软件&#xff1a;安装nfs-utils和rpcbindnfs-utils&#xff1a; 提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件 rpcbind: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM&#xff0c;都要做好客户端IP及其PORT的对应工…