介绍与概述
首先非常感谢您使用深圳市度申科技有限公司的产品。DVP2 SDK是本公司自主研发的第二代工业相机产品软件开发包。本公司目前最新的工业相机产品(U3M 系列 、U3S 系列 、GM 系列),都可使用该SDK进行应用软件开发,其具有以下特色:
(1) 高效、简洁、规范的API接口,为用户提供一个简单易用的开发环境;强大的调试功能,可以很方便的定位用户在使用过程中遇到的问题;
(2) 提供UI配置界面用户无须自行实现相机配置界面,调用一个API即可完成对相机的各个参数进行调节;
(3) 对各种主流的机器视觉软件LabView、Halcon提供专门的转换接口,使相机可以更高效的运行于这些机器视觉软件;
(4)支持GenICam接口支持使用该接口的通用相机应用软件;
(5) 支持主流的编程语言和开发环境:Visual 、Visual C# 、VB .net 、Qt
;
(6) 提供高质量、实用性较强的参考案例;
如何使用 DVP2 API
本章主要介绍了使用DVP API 进行应用程序开发时,涉及到的一些相关文件、开发环境的搭建、相机开发的基本流程、运行过程中相关参数的调节、图像采集的方式以及代码清单。点击下载Dvp2SDK
相关文件介绍
本节主要介绍了使用DVP2 API 开发应用工程时,编译和运行过程中所需要使用到的文件
编译时所需要的文件
编译时所包含的文件如下表所示。
文件名 | 文件功能 |
---|---|
DVPCamera.h | 定义枚举、结构、API 接口 |
DVPCamera.lib | DVPCamera.dll的静态链接文件 |
DVPCamera64.lib | DVPCamera64.dll的静态链接文件 |
运行时所需要的文件
使用DVP2 API开发的应用程序,运行时所需要的32位
文件如下表所示。
文件名 | 文件功能 |
---|---|
DVPCamera.dll | API接口动态库 |
CommonHZD.dll | 相机驱动公用库 |
XXXXX.dscam.dll | 相机设备驱动程序 |
使用DVP2 API开发的应用程序,运行时所需要的64位
文件如下表所示。
文件名 | 文件功能 |
---|---|
DVPCamera64.dll | API接口动态库 |
CommonHZD64.dll | 相机驱动公用库 |
XXXXX.dscam64.dll | 相机设备驱动程序 |
如果使用了本公司提供产品驱动安装包 ,将会复制以上运行文件到安装目录(假设系统目录为C盘):
32位文件被安装到 C:\Program Files(x86)\Do3think\DVP2
64位文件被安装到 C:\Program Files(x86)\Do3think\DVP2 x64
用户也可以自行将文件拷贝到应用程序所在目录 如果系统目录和应用程序所在目录同时存在这些文件,应用程序中的DLL程序将被优先加载。
开发环境搭建
本节主要介绍了使用Visual C++ 、Visual C#以及Visual Basic.net进行DVP2 API开发时,如何搭建开发环境。
Visual C++开发环境配置
(1)添加头文件
#include "头文件目录/DVPCamera.h"
(2)加载LIB库
#ifdef _M_X64 //64位加载64位LIB库#pragma comment(lib, "64位LIB文件目录/DVPCamera64.lib")
#else //加载32位LIB库
#pragmacomment(lib, "32位LIB文件目录/DVPCamera.lib")
#endif
Visual C# 开发 环境配置
(1) 添加引用
32位添加引用 DVPCameraCS.dll
64位添加引用 DVPCameraCS 64 .dll
(2) 命名空间
命名空间 DVPCameraType
API函数类 DVPCamera
Visual Basic.net开发环境配置
(1) 添加引用
32位添加引用 DVPCameraCS.dll
64位添加引用 DVPCameraCS 64 .dll
(2)命名空间
命名空间 DVPCameraType
API函数类 DVPCamera
基本流程
一般使用流程分为 以下 几个步骤:
- 使用dvpRefresh和dvpEnum获取相机相关的设备信息;
- 使用dvpOpenByName/dvpOpen成功打开/初始化相机后,将获得一个相机对应的ID(句
柄); - 打开相机后,可以对相机进行各种模式配置和参数调节;
- 配置模式和参数设置好后,使用dvpStart启动图像输出;
- 图像采集完成后,可以使用dvpStop关闭图像输出;
- 使用dvpClose关闭(反初始化)相机,结束相机操作。
运行过程中的参数调节
相机在启动后或输出图像的过程中,允许对相机的各功能进行实时的设置和参数调节,但以下几个功能除外,对这些功能的设置需要先停止相机)。
功能 | 相关接口 |
---|---|
网络相机传输包长 | dvpSetStreamPackSize |
采集图像格式 | dvpSetSourceFormat |
目标图像格式 | dvpSetTargetFormat |
图像采集方式
使用相机进行图像采集是主要有两种方法:回调函数与同步方式这两种方式可以同时使用。
回调函数
回调方式是最简单的应用方式,该方式适合用于视频显示、简单图像处理等场合。通过dvpRegisterStreamCallback
注册一个用户提供的回调函数来获取图像数据。
同步方式阻塞方式
主要应用场景用户的图像采集或处理线程中调用dvpGetFrame获取图像数据图像数据没有获得之前,这些过程将被阻塞。为了避免出现长时间的阻塞,dvpGetFrame可以设置超时,允许用户自行决定合适的等待时间。
相机的属性页操作
使用API函数dvpShowPropertyModalDialog可以弹出一个属性页如下:
通过属性页面可以完成常用的参数配置操作,点击“确定”,相机参数将被保存。
相机参数的存档
(1)如果用户使用属性页功能,并点击了属性页的“确定”按钮,将会产生一个存档。
(2)如果用户使用本公司相机产品对应的驱动安装程序进行安装,那么默认的参数存档路径将可能是C:\ProgramData\DO3THINK\DVP2
目录(假设 C 盘为系统盘)。
(3)如果用户采用的直接复制库文件(DVPCamera.dll、XXX.dscam.dll)到应用程序目录的方式,默认的参数存档路径将是 EXE 程序所在的目录。
(4)参数存档文件一般的文件名形式为:[产品序列号].ini,这样每个相机将对应一个存档文件。
参考代码清单
BasicFunction
关键字:自动曝光、曝光时间、模拟增益、消频闪、分辨率切换、视频流回调函数
功能介绍:可连接的相机数目枚举,相机设备的打开和关闭,相机视频流的启动和停止,相机属性设置等基本功能。保存图片功能。自动曝光操作,自动曝光模式选择,曝光时间调整,抗频闪方式设置,模拟增益调节等功能。相机分辨率设置。
ImageAcquisition
关键字:采集线程、图像保存、软触发、定时采集、采集同步
功能介绍:可连接的相机数目枚举,相机设备的打开和关闭,相机视频流的启动和停止,相机属性设置等基本功能。采用同步的方式,在一个线程中采集图像,并可以根据设置将采集到的图像显示出来或者保存到文件中。打开已经保存的图像的文件夹。可以使用软触发的方式进行采集,这样可以在不须要图像数据的情况下节省通讯带宽、降低系统开销;软触发方式也能起到采集同步的效果。可以设定采集的等待时间,实现类似于定时采集的效果。
MultipleCamera
关键字:多相机、用户命名(User ID)、相机名称绑定
功能介绍:可连接的相机数目枚举,相机设备的打开和关闭,相机视频流的启动和停止,相机属性设置等基本功能。设置用户 ID 的功能。四台相机同时工作,通过用户 ID 绑定每台相机保存绑定关系,实现每次启动时每个视频窗体对应于指定的相机。
Trigger
关键字:软触发、外部触发、循环触发、Strobe信号
功能介绍:软触发和外部触发相关参数的调节,如触发信号抖动过滤、延迟、定时器设置。触发输入信号和strobe输出信号的配置。