大恒图像系列数字摄像机
数字摄像机软件开发说明书
2007年10月版
本手册中所提及的其它软硬件产品的商标与名称,都属于相应公司所有。
本手册的版权属于中国大恒(集团)有限公司 北京图像视觉技术分公司所有。未得到本公司的正式许可,任何组织或个人均不得以任何手段和形式对本手册内容进行复制或传播。
本手册的内容若有任何修改,恕不另行通知。
? 2007 中国大恒(集团)有限公司北京图像视觉技术分公司 版权所有
网站:https://www.wendangku.net/doc/e24829421.html,
销售信箱:sales@https://www.wendangku.net/doc/e24829421.html,
销售热线:010-********转8021
支持信箱:support@https://www.wendangku.net/doc/e24829421.html,
支持热线:010-********转8006
前 言
首先感谢您选用大恒图像产品,数字摄像机应用接口库是我公司提供的应用程序接口函数。它基本上概括了数字摄像机应用程序编程中涉及的各个方面,通过应用接口库,用户可以很好地了解数字摄像机的运行机制,并在此基础上进行应用程序的开发。
数字摄像机应用接口库按照模块分为应用功能模块和扩充功能模块。其中应用功能模块包括数字摄像机的控制、采集图像到内存、错误处理等功能,扩充功能模块包括图像数据的转换等功能。
本手册按功能对接口库中的函数进行了划分,对于每一个功能部分的函数都具体给出了它们的函数原型、参数定义、说明、示例等信息。
手册为用户进行数字摄像机的二次开发提供了详细的说明,如果用户在使用过程中发现错误和纰漏,请与我公司的销售或技术服务部门联系,以便我们及时改进。
目 录
1概述 (1)
1.1功能 (1)
1.2文件 (2)
1.2.1应用功能模块 (2)
1.2.2扩充功能模块 (2)
1.3开发工具 (2)
1.4应用程序的发布 (3)
2说明 (4)
2.1 应用功能 (4)
2.1.1 定义 (4)
2.1.1.1 常量 (4)
2.1.1.2 结构 (16)
2.1.1.3 宏 (19)
2.1.2函数说明 (21)
2.1.2.1数字摄像机的控制 (21)
1.函 数:BeginHVDevice (21)
2.函 数:EndHVDevice (22)
3.函 数:HVSetResolution (23)
4.函 数:HVSetOutputWindow (24)
5.函 数 HVSetBlanking (25)
6.函 数:HVSetSnapMode (26)
7.函 数:HVSetTriggerPolarity (26)
8.函 数:HVSetStrobePolarity (27)
9.函 数:HVSetSnapSpeed (28)
10.函 数:HVEnableVideoMirror (28)
11.函 数:HVADCControl (29)
12.函 数:HVAGCControl (31)
13.函 数:HVAECControl (32)
14.函 数:HVCommand (33)
2.1.2.2采集图像到内存 (37)
1.函 数:HVSnapShot (37)
2.函 数:HVOpenSnap (38)
3.函 数:HVCloseSnap (39)
4.函 数:HVStartSnap (40)
5.函 数:HVStopSnap (41)
6.函 数:HVTriggerShot (41)
7.函 数:HVWaitSync (42)
2.1.2.3错误处理 (42)
1.函 数:HVGetErrorString (42)
2.1.2.4其它功能 (43)
1.函 数:HVGetDeviceTotal (43)
2.函 数:HVGetDeviceInfo (43)
4.函 数:HVDeviceMemRead (47)
5.函 数:HVDeviceMemWrite (48)
2.2扩充功能 (49)
2.2.1 定义 (49)
2.2.1.1 常量 (49)
2.2.2 函数说明 (52)
2.2.2.1图像数据的转换及校正 (52)
1.函 数:ConvertBayer2RGB (52)
2.函 数:GetWhiteBalanceRatio (53)
3.函 数:SetGammaLut (54)
4.函 数:DetectDeadPixel (55)
5.函 数:EraseDeadPixel (55)
6.函 数:GetPatternNoise (56)
7.函 数:AvgPatternNoise (57)
8.函 数:FixPatternNoise (58)
3.附录 (60)
3.1函数返回值代码表 (60)
3.2 SV1310FC摄像机功能调用函数列表 (62)
3.3 SV1311FC摄像机功能调用函数列表 (63)
3.4 SDK中新增功能相关结构说明及实例 (64)
4.备注 (68)
1概述
在Microsoft 的32位Windows操作系统中,数字摄像机应用接口库直接操作数字摄像机,并提供给用户一个简单明确的应用接口。用户在编制自己的应用程序时,可以直接调用这些库函数来实现指定的功能。
数字摄像机工作流程如下:
一般情况下,摄像机的开始操作和初始化参数的设置,最好在用户应用程序的初始化中完成,摄像机的结束操作应在应用程序退出前执行。
1.1功能
应用接口库划分为应用功能模块和扩充功能模块。
1
1.2文件
1.2.1应用功能模块
包含文件HVDAIlT.h
动态链接库HVDAIlT.dll
静态链接库HVDAIlT.lib
1.2.2扩充功能模块
包含文件Raw2RGB.h
动态链接库Raw2RGB.dll
静态链接库Raw2RGB.lib
1.3开发工具
应用接口库支持32位编程开发工具Microsoft Visual C/C++、Microsoft Visual Basic、Borland C/C++、Delphi、C++ Builder、Power Builder等。
使用C/C++编程工具,用户应在程序中调用相关的包含文件(.h),并将静态链接库(.lib)文件加入到工程文件中,供编译程序在链接(Link)时使用。需要说明的是,MS-Visual C/C++和C++ Builder定义了各自的静态链接库的文件格式,它们之间是不通用的。
使用MS-Visual Basic、Delphi、Power Builder等编程工具调用应用接口库时,应按照调用动态链接库的方法,在程序中重新声
2
明函数原型,这时要注意正确定义参数的数据类型。
1.4应用程序的发布
发布数字摄像机的应用程序,首先,安装摄像机的设备驱动程序(安装步骤可参见“安装数字摄像机设备驱动程序”说明),并确认安装成功;然后,将要发布的应用程序安装到相应的工作目录。这样,应用程序就可以运行了。
如果需要将驱动程序与二次开发的应用程序安装盘一并发布,请将随卡的驱动程序光盘或软盘中,相应操作系统目录下的驱动程序拷贝到准备发布的安装盘上即可。
3
2说明
2.1 应用功能
数字摄像机应用接口库包括数字摄像机的控制、采集图像到内存、错误处理、其它功能等功能。函数的原型声明在包含文件HVDAIlT.h,动态链接库HVDAIlT.dll,静态链接库HVDAIlT.lib。
2.1.1 定义
模块中相关常量,数据结构,宏的说明。
2.1.1.1 常量
1.typedef HANDLE HHV;
HHV 标识数字摄像机设备句柄。
数字摄像机的控制,参数设置,图像采集等,都需要使用设备句柄。
2.typedef enum tagHVTYPE {
HV1300UCTYPE = 0,
HV2000UCTYPE = 1,
HV1301UCTYPE = 2,
HV2001UCTYPE = 3,
HV3000UCTYPE = 4,
HV1300UMTYPE = 5,
HV1302UCTYPE = 6,
HV2002UCTYPE = 7,
4
HV3102UCTYPE = 8,
HV1302UMTYPE = 9
HV1300FCTYPE = 10,
HV2000FCTYPE = 11,
HV3100FCTYPE = 12,
HV1300FMTYPE = 13,
HV1303UCTYPE = 14,
HV2003UCTYPE = 15,
HV3103UCTYPE = 16,
HV1303UMTYPE = 17,
SV1300FMTYPE = 18,
SV1300FCTYPE = 19,
SV1310FCTYPE = 20,
SV1310FMTYPE = 21, SV1311FCTYPE = 22,
SV1311FMTYPE = 23,
SV400FCTYPE = 24,
SV400FMTYPE = 25,
DH1394FXTYPE = 26,
SV1410FCTYPE = 27,
SV1410FMTYPE = 28,
SV1420FCTYPE = 29,
5
SV1420FMTYPE = 30,
SV2000FCTYPE = 31,
SV2000FMTYPE = 32
} HVTYPE;
HVTYPE 标识当前数字摄像机的设备类型。
不同类型的数字摄像机有一些不同的硬件特性或参数,用户需要根据摄像机类型,完成相关的操作。
3.typedef enum tagHV_RESOLUTION {
RES_MODE0 = 0,
RES_MODE1 = 1,
RES_MODE2 = 2,
RES_MODE3 = 3
} HV_RESOLUTION;
HV_RESOLUTION 标识图像分辨率的类型。
RES_MODE0
分辨率0;
RES_MODE1
分辨率1;
RES_MODE2
分辨率2;
RES_MODE3
分辨率3。
6
4.typedef enum tagHV_SNAP_MODE {
CONTINUATION = 0,
TRIGGER = 1,
TRIGGER_EDGE = 2,
TRIGGER_LEVEL = 3
} HV_SNAP_MODE;
HV_SNAP_MODE 标识图像采集模式。
CONTINUATION
连续;
TRIGGER
外触发;
TRIGGER_EDGE
边缘外触发;
TRIGGER_LEVEL
电平外触发。
5. typedef enum tagHV_POLARITY {
LOW = 0,
HIGH = 1
} HV_POLARITY;
HV_POLARITY 标识摄像机为外触发采集模式时,外触发信号的极性。
7
LOW
下降沿或低电平有效;
HIGH
上升沿或高电平有效。
6. typedef enum tagHV_SNAP_SPEED {
NORMAL_SPEED = 0,
HIGH_SPEED = 1
} HV_SNAP_SPEED;
HV_SNAP_SPEED 标识图像采集速度。
NORMAL_SPEED
正常速度采集;
HIGH_SPEED
高速采集。
7. typedef enum tagHV_CHANNEL {
RED_CHANNEL = 0x10,
GREEN_CHANNEL1 = 0x11,
GREEN_CHANNEL2 = 0x12,
BLUE_CHANNEL = 0x13
} HV_CHANNEL;
HV_CHANNEL 标识摄像机的颜色通道。
RED_CHANNEL
红色通道;
8
GREEN_CHANNEL1
绿色通道1;
GREEN_CHANNEL2
绿色通道2;
BLUE_CHANNEL
蓝色通道。
8.typedef enum tagHV_ADC_CONTROL{
ADC_BITS = 0
ADC_BLKLEVEL_CAL = 1,
ADC_BLKLEVEL_CAL_REDCHANNEL = 0x10,
ADC_BLKLEVEL_CAL_GREENCHANNEL1 = 0x11,
ADC_BLKLEVEL_CAL_GREENCHANNEL2 = 0x12,
ADC_BLKLEVEL_CAL_BLUECHANNEL = 0x13,
ADC_BRIGHTNESS = 2 } HV_ADC_CONTROL;
HV_ADC_CONTROL 标识摄像机的模拟/数字转换控制方式。
ADC_BITS
模拟/数字转换级别控制;
ADC_BLKLEVEL_CAL
黑电平参数调节允许;
ADC_BLKLEVEL_CAL_REDCHANNEL
9
红色通道黑电平调节;
ADC_BLKLEVEL_CAL_GREENCHANNEL1
绿色通道1黑电平调节;
ADC_BLKLEVEL_CAL_GREENCHANNEL2
绿色通道2黑电平调节;
ADC_BLKLEVEL_CAL_BLUECHANNEL
蓝色通道黑电平调节;
ADC_BRIGHTNESS
亮度调节。
9.typedef enum tagHV_ADC_LEVEL{
ADC_LEVEL0 = 0,
ADC_LEVEL1 = 1,
ADC_LEVEL2 = 2,
ADC_LEVEL3 = 3
} HV_ADC_LEVEL;
HV_ADC_LEVEL 标识模拟/数字转换级别。
ADC_LEVEL0
0级,10位数据取低7位有效;
ADC_LEVEL0
1级,10位数据取低8位有效;
ADC_LEVEL2
10
2级,10位数据取中间8位有效;
ADC_LEVEL3
3级,10位数据取高8位有效。
10.typedef enum tagHV_AEC_CONTROL{
AEC_EXPOSURE_TIME = 1,
AEC_SHUTTER_SPEED = 2,
AEC_SHUTTER_UNIT = 3
} HV_AEC_CONTROL;
HV_AEC_CONTROL 标识摄像机曝光控制方式。
AEC_EXPOSURE_TIME
曝光系数;
AEC_SHUTTER_SPEED
快门速度;
AEC_SHUTTER_UNIT
快门速度单位。
11. typedef enum tagHV_SHUTTER_UNIT {
SHUTTER_US = 0,
SHUTTER_MS = 1,
SHUTTER_S = 2
} HV_SHUTTER_UNIT;
11
HV_SHUTTER_UNIT 标识摄像机快门速度的单位。
SHUTTER_US
微秒;
SHUTTER_MS
毫秒;
SHUTTER_S
秒。
12. typedef enum tagHV_AGC_CONTROL{
AGC_GAIN_RED_CHANNEL = 0x10,
AGC_GAIN_GREEN_CHANNEL1 = 0x11,
AGC_GAIN_GREEN_CHANNEL2 = 0x12,
AGC_GAIN_BLUE_CHANNEL = 0x13,
AGC_GAIN = 2 } HV_ADC_CONTROL;
HV_ADC_CONTROL 标识摄像机增益控制方式。
AGC_BLKLEVEL_CAL_REDCHANNEL
红色通道增益调节;
AGC_BLKLEVEL_CAL_GREENCHANNEL1
绿色通道1增益调节;
AGC_BLKLEVEL_CAL_GREENCHANNEL2
绿色通道2增益调节;
12
AGC_BLKLEVEL_CAL_BLUECHANNEL
蓝色通道增益调节;
AGC_GAIN
增益调节。
13.typedef enum tag HV_MIRROR_DIRECTION {
VERT_DIR = 1
} HV_MIRROR_DIRECTION;
HV_MIRROR_DIRECTION 标识图像采集的镜像功能。
VERT_DIR
垂直方向。
14. typedef enum tagHV_COMMAND_CODE {
CMD_GET_BYTE_PER_PACKET = 0x10
CMD_SET_BYTE_PER_PACKET = 0x11,
CMD_FRAME_SHOT = 0x12,
CMD_FRAME_SHOT_FINISH = 0x13,
CMD_GET_LUT_DWENTRIES = 0x14,
CMD_SET_LUT_DWENTRIES = 0x15,
CMD_SPEC_FUN_INTERFACE1 = 0x80
} HV_COMMAND_CODE;
HV_COMMAND_CODE 标识摄像机的控制功能。
CMD_GET_BYTE_PER_PACKET
获得摄像机传输图像的数据包长(BytePerPacket)的参数;
CMD_SET_BYTE_PER_PACKET
13
设置传输图像的数据包长值;
CMD_FRAME_SHOT
以帧冻结方式抓取图像,即抓取图像到摄像机的帧存中;
CMD_FRAME_SHOT_FINISH
完成以帧冻结方式抓取图像;
CMD_GET_LUT_DWENTRIES
获得查找表数据;
CMD_SET_LUT_DWENTRIES
设置查找表数据。
CMD_SPEC_FUN_INTERFACE1
设置SV1310FC/M闪光灯开关功能,参见附录3.2 设置SV1311FC/M 的一些功能,参见附录3.3
15.typedef enum tag HV_DEVICE_INFO {
DESC_DEVICE_TYPE = 0,
DESC_RESOLUTION = 1,
DESC_DEVICE_MARK = 2,
DESC_DEVICE_SERIESNUM = 3,
DESC_DEVICE_BLANKSIZE = 4,
DESC_DEVICE_HARDWARE_VERSION = 6,
DESC_DEVICE_NAME = 7,
DESC_DEVICE_SOFTWARE_VERSION = 8,
DESC_DEVICE_FPGA_VERSION = 9,
DESC_DEVICE_VENDOR_NAME = 10,
DESC_DEVICE_BAYER_LAYOUT = 11,
14