图漾Halcon版本SDK使用教程【V2.0.X新版本】
Camport Halcon SDK 的目录,包含了:samples目录 、库文件、实现文件。Halcon SDK介绍:GenTL Producer 的实现文件。其中halcon_samples目录下::该示例程序用于展示相机连接的状态。:该示例程序用于1台深度相机采集图像数据。:该示例程序用于2台深度相机同时连续采集图像并输出图像数据。:该示例程序用于采集RGBD对齐后的点云图。:该示例程序用于
文章目录
1.下载并安装 Halcon
1.1 下载Halcon软件
在Halcon官网(https://www.mvtec.com/downloads) 下载Halcon(Windows 版)安装包,并根据官方文档安装Halcon,下载HALCON25.11Progress-Steady。
1.2 安装Halcon
- 1.解压HALCON 25.11的安装包压缩文件,并解压到HALCON-25.11.1.0-x64-win64文件夹。
- 2.进入HALCON-25.11.1.0-x64-win64文件夹,右键点击som.exe文件,选择以管理员身份运行,自动弹出HTML页面。
- 3.在安装页面上选择语言为中文(CN),选中第二个所有用户安装。
- 4.安装类型选择高级安装

简易安装会省略一些部件,比如GenICam、GigeVision、USB采集接口、VS调试插件等。
注:Image Acquisition Interfaces 安装包必须安装。若无特殊要求,建议勾选所有安装包并安装。
- 5.选择安装包,选择全部,点击 下一步。

- 6.完成安装。

2.下载Camport_Halcon_gentl SDK
2.1 下载Camport_Halcon_gentl SDK
1.使用浏览器下载:https://gitee.com/percipioxyz/camport3_halcon_gentl。
2.使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://gitee.com/percipioxyz/camport3_halcon_gentl.git
详情请参考图漾官网:https://doc.percipio.xyz/cam/latest/getstarted/sdk-halcon-compile.html#camera-feature-label
2.2 Camport Halcon SDK介绍
Camport Halcon SDK 的目录,包含了:samples目录 、库文件、实现文件。
其中根目录下:
- ubunt_x64/percipio.cti、win_x64/percipio.cti:GenTL Producer 的实现文件。
其中halcon_samples目录下: - check_status.hdev:该示例程序用于展示相机连接的状态。
- fetchframe.hdev:该示例程序用于1台深度相机采集图像数据。
- fetchframe_2cameras.hdev:该示例程序用于2台深度相机同时连续采集图像并输出图像数据。
- fetchframe_RGBD.hdev:该示例程序用于采集RGBD对齐后的点云图。
- genicamtl_parameters.hdev:该示例程序用于枚举图漾支持设置的参数。
- triggermode1.hdev:该示例程序用于设置深度相机工作在模式1,相机收到软触发指令或硬触发信号后采集图像并输出图像数据。
2.3 Halcon SDK环境配置与运行
2.3.1 SDK环境配置
配置环境变量。进入环境变量页面,新建一个环境变量。变量名为GENICAM_GENTL64_PATH,变量值为percipio.cti的存储路径,即Halcon2.1.6文件夹路径,重启电脑后,配置生效。,重启电脑后,配置生效。
注意:版本更新一定要记得配置环境变量。
2.3.1.1 License下载与配置
1.访问Halcon Licenses下载链接,下载授权。
2.下载并解压后获得若干.dat文件。将所有.dat文件放于Halcon程序安装目录下的License目录下,如C:\Program Files\MVTec\HALCON-25.11-Progress-Steady\license(也可以通过右击,Halcon桌面快捷方式-属性-打开文件所在位置,直接访问到安装目录)
注意:License需要每月更新一次。
2.3.1.2 官网购买加密狗
前期测试可以使用临时License,如项目中需要使用Halcon软件,请联系官网购买正版加密狗。
2.3.2 获取相机支持的参数
第一步,修改示例程序genicamtl_parameters.hdev。
在open_framegrabber (InterfaceName, 0, 0, 0, 0, 0, 0, ‘default’, -1, ‘default’, GenericParam, ‘false’, ‘default’, Device, 0, -1, AcqHandle)之前添加如下代码:
Device:='PercipioTL_DEV_207000159544'
注意:根据实际情况填写
在get_framegrabber_param (AcqHandle, ‘available_param_names’, ParameterValues)之前添加如下代码:
*SDK3.0相机
set_framegrabber_param(AcqHandle, 'SourceSelector', 'Source_LeftIR')
set_framegrabber_param(AcqHandle, 'ComponentEnable', 1)
*SDK4.0相机
set_framegrabber_param(AcqHandle, 'SourceSelector', 'Left')
set_framegrabber_param(AcqHandle, 'ComponentEnable', 1)
先确认查找哪个组件,需要先将组件打开。程序才会将该组件下所有的属性列出来。
第二步,运行genicamtl_parameters.hdev程序。
第三步,查看相机支持的属性列表,运行后会在sample路径下生成参数文件parameters_info.dat。
例:TriggerLedExpo: 0 [0,1088,1,0]
参数名 + streamable or non-streamable + 当前值 + [最小值,最大值,步长,当前值]
第四步,确认Halcon的版本号,使用notepad++ 打开parameters_info.dat文件。
2.3.3 配置相机参数并运行相机
配置参数,可以根据如下流程进行参数配置。
1.通过 SDK 示例程序 DumpAllFeatures 可列出当前操作相机的所有组件和支持的属性信息。
2.通过 SDK 示例程序 DumpAllFeatures -d,可以生成 fetch_config.xml文件,在该文件中可以查看深度相机支持的组件和和属性。
3.这个需要下载C++的SDK才能获取,详细获取链接如下:
Camport4 C++语言SDK下载链接
打开程序fetchframe.hdev,点击Halcon的 执行 按钮,相机开始采集图像。
注意:1TLRemoteDeviceNodemapExtTY.xml1中,pmin和min区别是pmin会去拿fetch_config.xml的min;min直接拿xml的值。
2.4 遍历Percipio cti4.0支持的参数
根据下表遍历不同组件下的参数设置,对于Color组件,包括彩色相机的分辨率和格式读取,分辨率大小的设置、AEC、AWB、ROI以及曝光增益参数等设置。对于Depth组件,主要测试为SGBM参数。对于IR组件,则包括所有曝光增益参数的设置。
| 相机型号 | 主要测试项 |
|---|---|
| PMD02-E1 | SGBM 参数 Color: YUYV2560x1920、YUYV1280x960、YUYV640x480、CSI BayerGB 12P2560x1920、AE_TARGET_Y、AEC、Exposure time、AEC-ROI IR: Analog-gain、Exposure time Device: time-sync、triggerDelay、TriggerOutIO |
| GM641-E1 | Color: R/G/B-gain、AnalogAll、AGC|AWB IR: AEC、AEC-ROI |
2.5 遍历Percipio cti3.0支持的参数
| 相机型号 | 主要测试项 |
|---|---|
| PS800-E1 | SGBM参数参数链接 Color:YUYV2560x1920、YUYV1280x960、YUYV640x480、 YUYV1920x1440、CSI BAYER12GBRG2560x1920、AE_TARGET_Y、AEC、Exposure time、AEC-ROIIR:HDR、HDR-Parameter、Exposure time Device:PresetMode |
| FM851-E1 | Color:R/G/B-gain、Analog-Gain、AGC|AWB IR:Gain、Analog-gain Device:cmos-sync、time-sync、triggerDelay、TriggerOutIO |
| TL430-E1 | Depth-quality、tof-modulation-threshold、tof-jitter-threshold、filter-threshold、tof-channel、HDR-ratio |
| TM265-E1 | Color:JPEG1920x1080、YUYV1280x720、YUYV640x360Depth:depth16 240x96、 xyz48 240x96Tof-anti-sunlight-index、tof-anti-interference、MaxSpeckleDiff、MaxSpeckleSize |
注意:查看Halcon官网文档说明,使用正确的方式读取参数的使用范围及当前的值。

1.红色的部分表示无法设置的参数。
2.标准的属性支持Range的读取,客制的属性支持读取最大值和最小值。
3.`2.X.X版本SDK属性设置
3.1 Device组件
| 属性 | 写操作代码 | 读操作代码 |
|---|---|---|
| struct trigger mode | set_framegrabber_param(AcqHandle, ‘TriggerMode’, ‘On’) | get_framegrabber_param(AcqHandle, ‘TriggerMode’, workmode) |
| persistent IP | set_framegrabber_param(AcqHandle,‘GevPersistentIPAddress’,‘192.168.2.188’) | get_framegrabber_param(AcqHandle,‘GevPersistentIPAddress’,IP) |
| persistent netmask | set_framegrabber_param(AcqHandle,‘GevPersistentSubnetMask’,‘255.255.255.0’) | get_framegrabber_param(AcqHandle,‘GevPersistentSubnetMask’,netmask) |
| persistent gateway | set_framegrabber_param(AcqHandle,‘GevPersistentDefaultGateway’,‘192.168.2.1’) | get_framegrabber_param(AcqHandle,‘GevPersistentDefaultGateway’,gateway) |
| packet delay | set_framegrabber_param(AcqHandle, ‘GevSCPD’, 20000) | get_framegrabber_param(AcqHandle, ‘GevSCPD’, packetDelay) |
| packet size | set_framegrabber_param(AcqHandle, ‘GevSCPSPacketSize’, 1000) | get_framegrabber_param(AcqHandle, ‘GevSCPSPacketSize’, packetSize) |
| keep alive onoff | set_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatMode’,‘Off’) | get_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatMode’,devicelink) |
| keep alive timeout | set_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatTimeout’,15000) | get_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatTimeout’,timeout) |
| trigger delay (us) | set_framegrabber_param (AcqHandle, ‘TriggerDelay’,130000) | get_framegrabber_param (AcqHandle, ‘TriggerDelay’, TriggerDelay) |
| Frame per trigger | set_framegrabber_param(AcqHandle, ‘FramePerTrigger’, 10) | get_framegrabber_param(AcqHandle, ‘FramePerTrigger’, TriggerFps) |
| trigger Out IO | set_framegrabber_param(AcqHandle, ‘TriggerOutIO’, 0) | get_framegrabber_param(AcqHandle, ‘TriggerOutIO’, TriggerOutIO) |
| CaptureTimeUs | N/A | get_framegrabber_param (AcqHandle, ‘CaptureTimeUs’, CaptureTimeUs) |
| sync type | set_framegrabber_param (AcqHandle, ‘SyncType’, ‘SyncType_host’) | get_framegrabber_param (AcqHandle, ‘SyncType’,SyncType ) |
| NtpServerIp | set_framegrabber_param(AcqHandle,‘NtpServerIp’,3232236033) | get_framegrabber_param(AcqHandle,‘NtpServerIp’, ntpServer) |
| SyncReady | N/A | get_framegrabber_param (AcqHandle, ‘SyncReady’, SyncReady) |
| StreamAsync | set_framegrabber_param (AcqHandle, ‘StreamAsync’,‘StreamAsync_depth’ ) | get_framegrabber_param (AcqHandle, ‘StreamAsync’, StreamAsync) |
| cmos sync | set_framegrabber_param (AcqHandle, ‘CmosSync’,1 ) | get_framegrabber_param (AcqHandle, ‘CmosSync’, CmosSync) |
| PresetMode | set_framegrabber_param(AcqHandle, ‘PresetMode_Val’, 1) set_framegrabber_param(AcqHandle, ‘PresetMode’, ‘Fast’) 注意:两个方法选其中一个就可以。 |
get_framegrabber_param(AcqHandle, ‘PresetMode_Val’, value) get_framegrabber_param(AcqHandle, ‘PresetMode’, PresetMode) |
| Temperature Info | N/A | set_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector_Val’,0) get_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector_Val’,value) get_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector’,value0) get_framegrabber_param(AcqHandle,‘DeviceTemperature’,temp0) 注意:0,1,2,3,4 分别可以读取到leftIR、RightIR、Color、CPU和主板的温度 |
3.2 Depth组件
| 属性 | 写操作代码 | 读操作代码 |
|---|---|---|
| 打开/关闭Depth数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Depth’) get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle,‘ComponentEnable’,depth) |
| Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
| BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
| sgbm scale unit | set_framegrabber_param (AcqHandle, ‘ScaleUnit’, 0.25) | get_framegrabber_param (AcqHandle, ‘ScaleUnit’, ScaleUnit) |
| sgbm image number | set_framegrabber_param (AcqHandle, ‘SgbmImageNum’, 10) | get_framegrabber_param (AcqHandle, ‘SgbmImageNum’, SgbmImageNum) |
| sgbm disparity num | set_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, 320) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, SgbmDisparityNum) |
| sgbm disparity offset | set_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, -32) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, SgbmDisparityOffset) |
| sgbm match window height | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, 3) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, SgbmMatchWinHeight) |
| sgbm match window width | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’,3 ) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’, SgbmMatchWinWidth) |
| sgbm semi global param p1 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, 100) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, SgbmSemiParamP1) |
| sgbm semi global param p1 scale | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’,10 ) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’, SgbmSemiParamP1Scale) |
| sgbm semi global param p2 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, 100) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, SgbmSemiParamP2) |
| sgbm enable half window size | set_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, SgbmHfilterHalfWin ) |
| sgbm uniqueness factor param | set_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, 130) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, SgbmUniqueFactor) |
| sgbm uniqueness min absolute diff | set_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, 1000) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, SgbmUniqueAbsdiff) |
| sgbm enable LRC | set_framegrabber_param (AcqHandle, ‘SgbmLrc’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmLrc’, SgbmLrc ) |
| sgbm max LRC diff | set_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, 2500) | get_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, SgbmLrcDiff) |
| sgbm enable median filter | set_framegrabber_param (AcqHandle, ‘SgbmMedfilter’,1 ) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilter’, SgbmMedfilter) |
| sgbm median filter thresh | set_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, 250) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, SgbmMedfilterThresh) |
| sgbm texture Thresh | set_framegrabber_param (AcqHandle, ’ SgbmTextureThresh’, 500) | get_framegrabber_param (AcqHandle, ’ SgbmTextureThresh’, SgbmTextureThresh) |
| Sgbm texture offset | NC | get_framegrabber_param (AcqHandle, ’ SgbmTextureOffset’, SgbmTextureOffset) |
| depth quality | set_framegrabber_param(AcqHandle, ‘DepthQuality’, ‘DepthQuality_High’) | get_framegrabber_param(AcqHandle, ‘DepthQuality’, DepthQuality) |
| tof anti-sunlight index | set_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, 2) | get_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, TofAntiSunlightIndex) |
| Tof anti-interference | set_framegrabber_param(AcqHandle, ‘TofAntiInterference’,1) | get_framegrabber_param(AcqHandle, ‘TofAntiInterference’,TofAntiInterference) |
| MaxSpeckleSize | set_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,200) | get_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,MaxSpeckleSize) |
| MaxSpeckleDiff | set_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,500) | get_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,MaxSpeckleDiff) |
| tof modulation threshold | set_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, 80) | get_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, TofModulationThreshold) |
| tof jitter threshold | set_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, 10) | get_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, TofJitterThreshold) |
| filter threshold | set_framegrabber_param(AcqHandle, ‘FilterThreshold’, 190) | get_framegrabber_param(AcqHandle, ‘FilterThreshold’, FilterThreshold) |
| tof channel | set_framegrabber_param(AcqHandle, ‘TofChannel’, 4) | get_framegrabber_param(AcqHandle, ‘TofChannel’, TofChannel) |
| HDR ratio | set_framegrabber_param(AcqHandle, ‘TofHdrRatio’, 80) | get_framegrabber_param(AcqHandle, ‘TofHdrRatio’, TofHdrRatio) |
3.3 Color组件
| 属性 | 写操作代码 | 读操作代码 |
|---|---|---|
| 打开/关闭Color数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Color’) get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) |
| Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| Extrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Extrinsic_r11’, Extrinsic_r11) get_framegrabber_param(AcqHandle, ‘Extrinsic_r12’, Extrinsic_r12) get_framegrabber_param(AcqHandle, ‘Extrinsic_r13’, Extrinsic_r13) get_framegrabber_param(AcqHandle, ‘Extrinsic_t1’, Extrinsic_t1) get_framegrabber_param(AcqHandle, ‘Extrinsic_r21’, Extrinsic_r21) get_framegrabber_param(AcqHandle, ‘Extrinsic_r22’, Extrinsic_r22) get_framegrabber_param(AcqHandle, ‘Extrinsic_r23’, Extrinsic_r23) get_framegrabber_param(AcqHandle, ‘Extrinsic_t2’, Extrinsic_t2) get_framegrabber_param(AcqHandle, ‘Extrinsic_r31’, Extrinsic_r31) get_framegrabber_param(AcqHandle, ‘Extrinsic_r32’, Extrinsic_r32) get_framegrabber_param(AcqHandle, ‘Extrinsic_r33’, Extrinsic_r33) get_framegrabber_param(AcqHandle, ‘Extrinsic_t3’, Extrinsic_t3) |
| Distortion | N/A | get_framegrabber_param(AcqHandle, ‘Distortion_k1’, Distortion_k1) get_framegrabber_param(AcqHandle, ‘Distortion_k2’, Distortion_k2) get_framegrabber_param(AcqHandle, ‘Distortion_p1’, Distortion_p1) get_framegrabber_param(AcqHandle, ‘Distortion_p2’, Distortion_p2) get_framegrabber_param(AcqHandle, ‘Distortion_k3’, Distortion_k3) get_framegrabber_param(AcqHandle, ‘Distortion_k4’, Distortion_k4) get_framegrabber_param(AcqHandle, ‘Distortion_k5’, Distortion_k5) get_framegrabber_param(AcqHandle, ‘Distortion_k6’, Distortion_k6) get_framegrabber_param(AcqHandle, ‘Distortion_s1’, Distortion_s1) get_framegrabber_param(AcqHandle, ‘Distortion_s2’, Distortion_s2) get_framegrabber_param(AcqHandle, ‘Distortion_s3’, Distortion_s3) get_framegrabber_param(AcqHandle, ‘Distortion_s4’, Distortion_s4) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
| BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
| exposure time | set_framegrabber_param (AcqHandle, ‘ExposureTime’,10000 ) | get_framegrabber_param (AcqHandle, ‘ExposureTime’, ExposureTime) |
| r gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalRed’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| g gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalGreen’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| b gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalBlue’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| analog gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘AnalogAll’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| auto gain ctrl | set_framegrabber_param (AcqHandle, ‘GainAuto’,‘Off’) | get_framegrabber_param (AcqHandle, ‘GainAuto’, GainAuto) |
| auto exposure(RgbAutoExpo) | set_framegrabber_param (AcqHandle, ‘ExposureAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘ExposureAuto’, ExposureAuto) |
| auto balance(RgbAWB) | set_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’, BalanceWhiteAuto) |
| struct aec roi | set_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,987 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,769 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,132 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,113 ) |
get_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,AEC_ROI_X) get_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,AEC_ROI_Y) get_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,AEC_ROI_W) get_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,AEC_ROI_H) |
| Target y(0-4000) | set_framegrabber_param (AcqHandle, ’ AE_TARGET_Y’,2000) | get_framegrabber_param (AcqHandle, ’ AE_TARGET_Y’, AE_TARGET_Y) |
| Flashlight-rgb-enable | set_framegrabber_param(AcqHandle,‘FlashLightEnable’,1) | get_framegrabber_param(AcqHandle,‘FlashLightRgbEnable’,FlashLightRgbEnable) |
| Flashlight-rgb-Intensity | set_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,100) | get_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,FlashLightRgbIntensity) |
3.4 IR组件
| 属性 | 写操作代码 | 读操作代码 |
|---|---|---|
| 打开/关闭左IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_LeftIR’) get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) |
| 打开/关闭右IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_RightIR’) get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) |
| Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| Extrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Extrinsic_r11’, Extrinsic_r11) get_framegrabber_param(AcqHandle, ‘Extrinsic_r12’, Extrinsic_r12) get_framegrabber_param(AcqHandle, ‘Extrinsic_r13’, Extrinsic_r13) get_framegrabber_param(AcqHandle, ‘Extrinsic_t1’, Extrinsic_t1) get_framegrabber_param(AcqHandle, ‘Extrinsic_r21’, Extrinsic_r21) get_framegrabber_param(AcqHandle, ‘Extrinsic_r22’, Extrinsic_r22) get_framegrabber_param(AcqHandle, ‘Extrinsic_r23’, Extrinsic_r23) get_framegrabber_param(AcqHandle, ‘Extrinsic_t2’, Extrinsic_t2) get_framegrabber_param(AcqHandle, ‘Extrinsic_r31’, Extrinsic_r31) get_framegrabber_param(AcqHandle, ‘Extrinsic_r32’, Extrinsic_r32) get_framegrabber_param(AcqHandle, ‘Extrinsic_r33’, Extrinsic_r33) get_framegrabber_param(AcqHandle, ‘Extrinsic_t3’, Extrinsic_t3) |
| Distortion | N/A | get_framegrabber_param(AcqHandle, ‘Distortion_k1’, Distortion_k1) get_framegrabber_param(AcqHandle, ‘Distortion_k2’, Distortion_k2) get_framegrabber_param(AcqHandle, ‘Distortion_p1’, Distortion_p1) get_framegrabber_param(AcqHandle, ‘Distortion_p2’, Distortion_p2) get_framegrabber_param(AcqHandle, ‘Distortion_k3’, Distortion_k3) get_framegrabber_param(AcqHandle, ‘Distortion_k4’, Distortion_k4) get_framegrabber_param(AcqHandle, ‘Distortion_k5’, Distortion_k5) get_framegrabber_param(AcqHandle, ‘Distortion_k6’, Distortion_k6) get_framegrabber_param(AcqHandle, ‘Distortion_s1’, Distortion_s1) get_framegrabber_param(AcqHandle, ‘Distortion_s2’, Distortion_s2) get_framegrabber_param(AcqHandle, ‘Distortion_s3’, Distortion_s3) get_framegrabber_param(AcqHandle, ‘Distortion_s4’, Distortion_s4) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
| BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
| Undistort | set_framegrabber_param(AcqHandle, ’ Undistort’, 0) | get_framegrabber_param(AcqHandle, ‘Undistort’, Undistort) |
| exposure time | set_framegrabber_param (AcqHandle, ’ ExposureTime’,10000 ) | get_framegrabber_param (AcqHandle, ’ ExposureTime’, ExposureTime) |
| gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalAll’) set_framegrabber_param(AcqHandle, ‘Gain’,255) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) * 返回值是:[min, max, step, current]. |
| analog gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘AnalogAll’) set_framegrabber_param(AcqHandle, ‘Gain’,3) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) * 返回值是:[min, max, step, current]. |
| hdr | set_framegrabber_param(AcqHandle, ‘HdrEnable’, 1) | get_framegrabber_param(AcqHandle, ‘HdrEnable’, HdrEnable) |
| hdr parameter | set_framegrabber_param(AcqHandle,‘HDR_PARAM_x’,x) | get_framegrabber_param(AcqHandle,‘HDR_PARAM_x’, HDR_PARAM_x) |
3.5 光源组件
| 属性 | 写操作代码 | 读操作代码 |
|---|---|---|
| LaserAutoCtrl | set_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’,0) | get_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’, LaserAutoCtrl) |
| LaserPower | set_framegrabber_param (AcqHandle, ‘LaserPower’,10 ) | get_framegrabber_param (AcqHandle, ‘LaserPower’, LaserPower) |
| Flashlight-ir-enable | set_framegrabber_param(AcqHandle,‘FlashLightIrEnable’,0) | get_framegrabber_param(AcqHandle,‘FlashLightIrEnable’,FlashLightEnable) |
| Flashlight-ir-Intensity | set_framegrabber_param(AcqHandle,‘FlashLightIrIntensity’,63) | get_framegrabber_param(AcqHandle,‘FlashLightIrIntensity’,FlashLightIntensity) |
| Flashlight-rgb-enable | set_framegrabber_param(AcqHandle,‘FlashLightEnable’,0) | get_framegrabber_param(AcqHandle,‘FlashLightRgbEnable’,FlashLightEnable) |
| Flashlight-rgb-Intensity | set_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,100) | get_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,FlashLightIntensity) |
4.1.1.X版本SDK属性设置
4.1 相机Device组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 工作模式 | struct trigger mode | set_framegrabber_param(AcqHandle, ‘TriggerMode’, ‘On’) | get_framegrabber_param(AcqHandle, ‘TriggerMode’, workmode) |
| 静态 IP 地址 | persistent IP | set_framegrabber_param(AcqHandle,‘GevPersistentIPAddress’,‘192.168.2.188’) | get_framegrabber_param(AcqHandle,‘GevPersistentIPAddress’,IP) |
| 静态 IP 子网掩码 | persistent netmask | set_framegrabber_param(AcqHandle,‘GevPersistentSubnetMask’,‘255.255.255.0’) | get_framegrabber_param(AcqHandle,‘GevPersistentSubnetMask’,netmask) |
| 静态 IP 网关 | persistent gateway | set_framegrabber_param(AcqHandle,‘GevPersistentDefaultGateway’,‘192.168.2.1’) | get_framegrabber_param(AcqHandle,‘GevPersistentDefaultGateway’,gateway) |
| 数据传输延迟时间 | packet delay | set_framegrabber_param(AcqHandle, ‘GevSCPD’, 20000) | get_framegrabber_param(AcqHandle, ‘GevSCPD’, packetDelay) |
| 数据传输包大小 | packet size | set_framegrabber_param(AcqHandle, ‘GevSCPSPacketSize’, 1000) | get_framegrabber_param(AcqHandle, ‘GevSCPSPacketSize’, packetSize) |
| 状态保持开关 | keep alive onoff | set_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatMode’,‘Off’) | get_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatMode’,devicelink) |
| 状态保持时间 | keep alive timeout | set_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatTimeout’,15000) | get_framegrabber_param(AcqHandle, ‘DeviceLinkHeartbeatTimeout’,timeout) |
| 触发延迟时间 | trigger delay (us) | set_framegrabber_param (AcqHandle, ‘TriggerDelay’,130000) | get_framegrabber_param (AcqHandle, ‘TriggerDelay’, TriggerDelay) |
| 触发后输出的帧数 | Frame per trigger | set_framegrabber_param(AcqHandle, ‘FramePerTrigger’, 10) | get_framegrabber_param(AcqHandle, ‘FramePerTrigger’, TriggerFps) |
| 触发 IO 输出控制 | trigger Out IO | set_framegrabber_param(AcqHandle, ‘TriggerOutIO’, 0) | get_framegrabber_param(AcqHandle, ‘TriggerOutIO’, TriggerOutIO) |
| 采集时间 | CaptureTimeUs | N/A | get_framegrabber_param (AcqHandle, ‘CaptureTimeUs’, CaptureTimeUs) |
| 对时方式 | sync type | set_framegrabber_param (AcqHandle, ‘SyncType’, ‘SyncType_host’) | get_framegrabber_param (AcqHandle, ‘SyncType’,SyncType ) |
| ntp服务器ip | NtpServerIp | set_framegrabber_param(AcqHandle,‘NtpServerIp’,3232236033) | get_framegrabber_param(AcqHandle,‘NtpServerIp’, ntpServer) |
| 对齐同步 | SyncReady | N/A | get_framegrabber_param (AcqHandle, ‘SyncReady’, SyncReady) |
| 数据流同步 | StreamAsync | set_framegrabber_param (AcqHandle, ‘StreamAsync’,‘StreamAsync_depth’ ) | get_framegrabber_param (AcqHandle, ‘StreamAsync’, StreamAsync) |
| 图像同步 | cmos sync | set_framegrabber_param (AcqHandle, ‘CmosSync’,1 ) | get_framegrabber_param (AcqHandle, ‘CmosSync’, CmosSync) |
| 出图模式 | PresetMode | set_framegrabber_param(AcqHandle, ‘PresetMode_Val’, 1) set_framegrabber_param(AcqHandle, ‘PresetMode’, ‘Fast’) 两个方法选其中一个就可以。 |
get_framegrabber_param(AcqHandle, ‘PresetMode_Val’, value get_framegrabber_param(AcqHandle, ‘PresetMode’, PresetMode) |
| 相机温度 | Temperature Info | N/A | set_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector_Val’,0) get_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector_Val’,value) get_framegrabber_param(AcqHandle,‘DeviceTemperatureSelector’,value0) get_framegrabber_param(AcqHandle,‘DeviceTemperature’,temp0) 0,1,2,3,4 分别可以读取到leftIR、RightIR、Color、CPU和主板的温度 |
注意:
1.只有在软/硬触发模式下可以获取到采集时间。
2.IP\Netmask\Gateway设置支持整型、十六进制、点分方式
3.NtpServerIP设置仅支持整型及十六进制,不支持点分方式。
4.默认相机支持网络重传的,自动使用重传功能,未开接口对外。
4.2 相机Depth组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 打开/关闭Depth数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Depth’) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) get_framegrabber_param(AcqHandle,‘ComponentEnable’,depth) |
|
| 相机内参 | Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) | |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
|
| BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
|
| 像素值的单位 | scale unit | set_framegrabber_param (AcqHandle, ‘ScaleUnit’, 1.0) | get_framegrabber_param (AcqHandle, ‘ScaleUnit’, ScaleUnit) |
| 用于深度计算的IR图数量 | image number | set_framegrabber_param (AcqHandle, ‘SgbmImageNum’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmImageNum’, SgbmImageNum) |
| 视差搜索范围 | disparity num | set_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, 160) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, SgbmDisparityNum) |
| 开始搜索的视差值 | disparity offset | set_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, 16) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, SgbmDisparityOffset) |
| 视差匹配窗口的高 | match window height | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, 15) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, SgbmMatchWinHeight) |
| 视差匹配窗口的宽 | match window width | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’,15 ) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’, SgbmMatchWinWidth) |
| 相邻像素(+/-1)约束惩罚参数P1 | semi global param p1 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, 400) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, SgbmSemiParamP1) |
| 相邻像素(+/-1)约束惩罚参数P1_scale | semi global param p1 scale | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’,10 ) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’, SgbmSemiParamP1Scale) |
| 相邻像素(+/-1)约束惩罚参数P2 | semi global param p2 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, 400) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, SgbmSemiParamP2) |
| 搜索滤波开关 | enable half window size | set_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, SgbmHfilterHalfWin ) |
| 最优匹配点与次优匹配点的百分比 | uniqueness factor param | set_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, 60) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, SgbmUniqueFactor) |
| 最优匹配点与次优匹配点差值的绝对值 | uniqueness min absolute diff | set_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, 100) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, SgbmUniqueAbsdiff) |
| 左右一致性检查开关 | enable LRC | set_framegrabber_param (AcqHandle, ‘SgbmLrc’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmLrc’, SgbmLrc ) |
| 左右一致性检查阈值 | max LRC diff | set_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, 2500) | get_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, SgbmLrcDiff) |
| 中值滤波开关 | enable median filter | set_framegrabber_param (AcqHandle, ‘SgbmMedfilter’,1 ) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilter’, SgbmMedfilter) |
| 过滤噪点值 | median filter thresh | set_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, 60) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, SgbmMedfilterThresh) |
| 深度质量 | depth quality | set_framegrabber_param(AcqHandle, ‘DepthQuality’, ‘DepthQuality_High’) | get_framegrabber_param(AcqHandle, ‘DepthQuality’, DepthQuality) |
| 抗阳光指数 | tof anti-sunlight index | set_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, 1) | get_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, TofAntiSunlightIndex) |
| 最大斑点噪声尺寸 | MaxSpeckleSize | set_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,200) | get_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,MaxSpeckleSize) |
| 最大差异 | MaxSpeckleDiff | set_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,500) | get_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,MaxSpeckleDiff) |
| 激光调制光强 | tof modulation threshold | set_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, 640) | get_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, TofModulationThreshold) |
| 抖动过滤 | tof jitter threshold | set_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, 10) | get_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, TofJitterThreshold) |
| 飞点滤波 | filter threshold | set_framegrabber_param(AcqHandle, ‘FilterThreshold’, 0) | get_framegrabber_param(AcqHandle, ‘FilterThreshold’, FilterThreshold) |
| 调制频道 | tof channel | set_framegrabber_param(AcqHandle, ‘TofChannel’, 0) | get_framegrabber_param(AcqHandle, ‘TofChannel’, TofChannel) |
| 高动态范围比 | HDR ratio | set_framegrabber_param(AcqHandle, ‘TofHdrRatio’, 8) | get_framegrabber_param(AcqHandle, ‘TofHdrRatio’, TofHdrRatio) |
注意:
1. Depth格式支持读取不支持设置,当前仅支持Coord3D_ABC32f(点云),支持读取内参。
2. Depth图像大小通过BinningHorizontal和BinningVertical参数进行设置,BnningVertical只设置这个即可生效。
3. Depth的分辨率只能设置最大分辨率和最大分辨率的1/2、1/3、1/4。
4.3 相机Color组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 打开/关闭Color数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Color’) set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) |
get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) |
|
| 相机内参 | Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| 相机外参 | Extrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Extrinsic_r11’, Extrinsic_r11) get_framegrabber_param(AcqHandle, ‘Extrinsic_r12’, Extrinsic_r12) get_framegrabber_param(AcqHandle, ‘Extrinsic_r13’, Extrinsic_r13) get_framegrabber_param(AcqHandle, ‘Extrinsic_t1’, Extrinsic_t1) get_framegrabber_param(AcqHandle, ‘Extrinsic_r21’, Extrinsic_r21) get_framegrabber_param(AcqHandle, ‘Extrinsic_r22’, Extrinsic_r22) get_framegrabber_param(AcqHandle, ‘Extrinsic_r23’, Extrinsic_r23) get_framegrabber_param(AcqHandle, ‘Extrinsic_t2’, Extrinsic_t2) get_framegrabber_param(AcqHandle, ‘Extrinsic_r31’, Extrinsic_r31) get_framegrabber_param(AcqHandle, ‘Extrinsic_r32’, Extrinsic_r32) get_framegrabber_param(AcqHandle, ‘Extrinsic_r33’, Extrinsic_r33) get_framegrabber_param(AcqHandle, ‘Extrinsic_t3’, Extrinsic_t3) |
| 畸变系数 | Distortion | N/A | get_framegrabber_param(AcqHandle, ‘Distortion_k1’, Distortion_k1) get_framegrabber_param(AcqHandle, ‘Distortion_k2’, Distortion_k2) get_framegrabber_param(AcqHandle, ‘Distortion_p1’, Distortion_p1) get_framegrabber_param(AcqHandle, ‘Distortion_p2’, Distortion_p2) get_framegrabber_param(AcqHandle, ‘Distortion_k3’, Distortion_k3) get_framegrabber_param(AcqHandle, ‘Distortion_k4’, Distortion_k4) get_framegrabber_param(AcqHandle, ‘Distortion_k5’, Distortion_k5) get_framegrabber_param(AcqHandle, ‘Distortion_k6’, Distortion_k6) get_framegrabber_param(AcqHandle, ‘Distortion_s1’, Distortion_s1) get_framegrabber_param(AcqHandle, ‘Distortion_s2’, Distortion_s2) get_framegrabber_param(AcqHandle, ‘Distortion_s3’, Distortion_s3) get_framegrabber_param(AcqHandle, ‘Distortion_s4’, Distortion_s4) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) | |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
|
| 下采样参数 | BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
| 曝光时间 | exposure time | set_framegrabber_param (AcqHandle, ‘ExposureTime’,1000 ) | get_framegrabber_param (AcqHandle, ‘ExposureTime’, ExposureTime) |
| R通道增益 | r gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalRed’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| G通道增益 | g gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalGreen’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| B通道增益 | b gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalBlue’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| 模拟增益 | analog gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘AnalogAll’) set_framegrabber_param(AcqHandle, ‘Gain’,20) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) |
| 自动增益 | auto gain ctrl | set_framegrabber_param (AcqHandle, ‘GainAuto’,‘Off’) | get_framegrabber_param (AcqHandle, ‘GainAuto’, GainAuto) |
| 自动曝光 | auto exposure(RgbAutoExpo) | set_framegrabber_param (AcqHandle, ‘ExposureAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘ExposureAuto’, ExposureAuto) |
| 自动白平衡 | auto balance(RgbAWB) | set_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’, BalanceWhiteAuto) |
| 区域自动曝光设置 | struct aec roi | set_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,987 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,769 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,132 ) set_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,113 ) |
get_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,AEC_ROI_X) get_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,AEC_ROI_Y) get_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,AEC_ROI_W) get_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,AEC_ROI_H) |
| 曝光目标亮度 | Target y(0-4000) | set_framegrabber_param (AcqHandle, ’ AE_TARGET_Y’,3500) | get_framegrabber_param (AcqHandle, ’ AE_TARGET_Y’, AE_TARGET_Y) |
| RGB泛光使能 | Flashlight-rgb-enable | set_framegrabber_param(AcqHandle,‘FlashLightEnable’,1) | get_framegrabber_param(AcqHandle,‘FlashLightRgbEnable’,FlashLightRgbEnable) |
| RGB泛光数值 | Flashlight-rgb-Intensity | set_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,100) | get_framegrabber_param(AcqHandle,‘FlashLightRgbIntensity’,FlashLightRgbIntensity) |
注意:
1.Gain类型属性包含了数字增益(Gain、R-gain、G-gain、B-gain)和模拟增益(Analog-gain)。
2.设置方法:选择Gain类型:GainSelector,读写Gain值(浮点数):Gain。
3.Color的图像格式不可设置,仅支持读取,且当前仅有RGB8格式,支持读取内参、外参、畸变参数。
4.Color图像大小通过BinningHorizontal和BinningVertical参数进行设置,BinningVertical只设置这个即可生效。
5.Color的分辨率只能最大分辨率和最大分辨率的1/2、1/3、1/4。
4.4 相机IR和Laser组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 打开/关闭左IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_LeftIR’) | get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) | |
| set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) | get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) | ||
| 打开/关闭右IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_RightIR’) | get_framegrabber_param(AcqHandle, ‘ComponentEnable’, ComponentEnable) | |
| set_framegrabber_param(AcqHandle, ‘ComponentEnable’, 1) | get_framegrabber_param(AcqHandle,‘ComponentEnable’,ComponentEnable) | ||
| 相机内参 | Intrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Intrinsic_fx’, Intrinsic_fx) get_framegrabber_param(AcqHandle, ‘Intrinsic_cx’, Intrinsic_cx) get_framegrabber_param(AcqHandle, ‘Intrinsic_fy’, Intrinsic_fy) get_framegrabber_param(AcqHandle, ‘Intrinsic_cy’, Intrinsic_cy) |
| 相机外参 | Extrinsic | N/A | get_framegrabber_param(AcqHandle, ‘Extrinsic_r11’, Extrinsic_r11) get_framegrabber_param(AcqHandle, ‘Extrinsic_r12’, Extrinsic_r12) get_framegrabber_param(AcqHandle, ‘Extrinsic_r13’, Extrinsic_r13) get_framegrabber_param(AcqHandle, ‘Extrinsic_t1’, Extrinsic_t1) get_framegrabber_param(AcqHandle, ‘Extrinsic_r21’, Extrinsic_r21) get_framegrabber_param(AcqHandle, ‘Extrinsic_r22’, Extrinsic_r22) get_framegrabber_param(AcqHandle, ‘Extrinsic_r23’, Extrinsic_r23) get_framegrabber_param(AcqHandle, ‘Extrinsic_t2’, Extrinsic_t2) get_framegrabber_param(AcqHandle, ‘Extrinsic_r31’, Extrinsic_r31) get_framegrabber_param(AcqHandle, ‘Extrinsic_r32’, Extrinsic_r32) get_framegrabber_param(AcqHandle, ‘Extrinsic_r33’, Extrinsic_r33) get_framegrabber_param(AcqHandle, ‘Extrinsic_t3’, Extrinsic_t3) |
| 畸变系数 | Distortion | N/A | get_framegrabber_param(AcqHandle, ‘Distortion_k1’, Distortion_k1) get_framegrabber_param(AcqHandle, ‘Distortion_k2’, Distortion_k2) get_framegrabber_param(AcqHandle, ‘Distortion_p1’, Distortion_p1) get_framegrabber_param(AcqHandle, ‘Distortion_p2’, Distortion_p2) get_framegrabber_param(AcqHandle, ‘Distortion_k3’, Distortion_k3) get_framegrabber_param(AcqHandle, ‘Distortion_k4’, Distortion_k4) get_framegrabber_param(AcqHandle, ‘Distortion_k5’, Distortion_k5) get_framegrabber_param(AcqHandle, ‘Distortion_k6’, Distortion_k6) get_framegrabber_param(AcqHandle, ‘Distortion_s1’, Distortion_s1) get_framegrabber_param(AcqHandle, ‘Distortion_s2’, Distortion_s2) get_framegrabber_param(AcqHandle, ‘Distortion_s3’, Distortion_s3) get_framegrabber_param(AcqHandle, ‘Distortion_s4’, Distortion_s4) |
| PixelMode | N/A | get_framegrabber_param(AcqHandle,‘PixelFormat’,format) | |
| Width/Height | N/A | get_framegrabber_param(AcqHandle,‘Width’,width) get_framegrabber_param(AcqHandle,‘Height’,height) |
|
| 下采样 | BinningHorizontal/BinningVertical | set_framegrabber_param (AcqHandle,‘BinningHorizontal’,2) set_framegrabber_param (AcqHandle,‘BinningVertical’,2) |
get_framegrabber_param(AcqHandle,‘BinningHorizontal’,H) get_framegrabber_param(AcqHandle,’ BinningVertical ',V) |
| 畸变矫正 | Undistort | set_framegrabber_param(AcqHandle, ’ Undistort’, 0) | get_framegrabber_param(AcqHandle, ‘Undistort’, Undistort) |
| 曝光时间 | exposure time | set_framegrabber_param (AcqHandle, ’ ExposureTime’,10000 ) | get_framegrabber_param (AcqHandle, ’ ExposureTime’, ExposureTime) |
| 数字增益 | gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘DigitalAll’) set_framegrabber_param(AcqHandle, ‘Gain’,255) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) * 返回值是:[min, max, step, current]. |
| 模拟增益 | analog gain | get_framegrabber_param(AcqHandle,‘GainSelector_values’,GainSelector) set_framegrabber_param(AcqHandle,‘GainSelector’,‘AnalogAll’) set_framegrabber_param(AcqHandle, ‘Gain’,2) |
get_framegrabber_param(AcqHandle, ‘Gain_range’,gain) * 返回值是:[min, max, step, current]. |
| 高动态范围开关 | hdr | set_framegrabber_param(AcqHandle, ‘HdrEnable’, 1) | get_framegrabber_param(AcqHandle, ‘HdrEnable’, HdrEnable) |
| 高动态参数 | hdr parameter | set_framegrabber_param(AcqHandle,‘HDR_PARAM_x’,x) | get_framegrabber_param(AcqHandle,‘HDR_PARAM_x’, HDR_PARAM_x) |
| 激光是否打开 | LaserAutoCtrl | set_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’,0) | get_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’, LaserAutoCtrl) |
| 激光强度 | LaserPower | set_framegrabber_param (AcqHandle, ‘LaserPower’,10 ) | get_framegrabber_param (AcqHandle, ‘LaserPower’, LaserPower) |
| 泛光使能 | Flashlight-enable | set_framegrabber_param(AcqHandle,‘FlashLightEnable’,0) | get_framegrabber_param(AcqHandle,‘FlashLightEnable’,FlashLightEnable) |
| 泛光灯亮度 | FlashLightIntensity | set_framegrabber_param(AcqHandle,‘FlashLightIntensity’,63) | get_framegrabber_param(AcqHandle,‘FlashLightIntensity’,FlashLightIntensity) |
注意:
1.IR图像大小通过BinningHorizontal和BinningVertical参数进行设置。IR图像格式支持:Mono8、Mono16。
2.曝光时间支持浮点类型设置,单位us,支持读取内参、外参、畸变参数。
3.激光器放在这里进行验证原因是当auto-ctrl=0时,只出左右IR,激光亮度受laser-power控制。当auto-ctrl=1时,只出左右IR,激光器不亮。
4.5 Storage组件
Camport3_Halcon_gentl SDK支持打开相机后自动加载相机storage配置参数,参数可以通过Percipio Viewer软件配置到相机的custom存储区。测试方法如下:
1.确认相机支持Storage组件。
2.使用Percipio Viewer软件打开相机,修改各组件下的参数,保存参数到相机的custom存储区,手动断电重启相机。
3.使用Camport3_Halcon_gentl SDK示例程序使能相机采集图像,观察图像变化。
5.V1.0.X旧版本SDK属性设置
5.1 旧版本Device组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 工作模式 | struct trigger mode | set_framegrabber_param (AcqHandle, ‘TriggerModeInt’, ‘TriggerMode_slave’ ) | get_framegrabber_param (AcqHandle, ‘TriggerModeInt’, TriggerModeInt) |
| 静态 IP 地址 | persistent IP | set_framegrabber_param (AcqHandle, ‘PersistentIP’, ‘192.168.2.200’) | get_framegrabber_param (AcqHandle, ‘PersistentIP’, PersistentIP) |
| 静态 IP 子网掩码 | persistent netmask | set_framegrabber_param (AcqHandle, ‘PersistentNetmask’,‘255.255.255.0’) | get_framegrabber_param (AcqHandle, ‘PersistentNetmask’, PersistentNetmask) |
| 静态 IP 网关 | persistent gateway | set_framegrabber_param (AcqHandle, ‘PersistentGateway’, ‘192.168.2.1’) | get_framegrabber_param (AcqHandle, ‘PersistentGateway’, PersistentGateway) |
| 数据传输延迟时间 | packet delay | set_framegrabber_param (AcqHandle, ‘PacketDelay’,1300 ) | get_framegrabber_param (AcqHandle, ‘PacketDelay’,PacketDelay) |
| 数据传输包大小 | packet size | set_framegrabber_param (AcqHandle, ‘PacketSize’, 150) | get_framegrabber_param (AcqHandle, ‘PacketSize’, PacketSize) |
| 状态保持开关 | keep alive onoff | set_framegrabber_param (AcqHandle, ‘KeepAliveOnoff’, 0) | get_framegrabber_param (AcqHandle, ‘KeepAliveOnoff’, KeepAliveOnoff) |
| 状态保持时间 | keep alive timeout | set_framegrabber_param (AcqHandle, ‘KeepAliveTimeout’,3000 ) | get_framegrabber_param (AcqHandle, ‘KeepAliveTimeout’, KeepAliveTimeout) |
| 触发延迟时间 | trigger delay us | set_framegrabber_param (AcqHandle, ‘TriggerDelayUs’,130000 ) | get_framegrabber_param (AcqHandle, ‘TriggerDelayUs’, TriggerDelayUs) |
| 触发持续时间 | trigger duration us | set_framegrabber_param (AcqHandle, ‘TriggerDurationUs’, 130000) | get_framegrabber_param (AcqHandle, ‘TriggerDurationUs’, TriggerDurationUs) |
| 触发出图帧率 | trigger fps | set_framegrabber_param(AcqHandle, ‘TriggerFps’, 10) | get_framegrabber_param(AcqHandle, ‘TriggerFps’, TriggerFps) |
| 触发 IO 输出控制 | trigger Out IO | set_framegrabber_param(AcqHandle, ‘TriggerOutIO’, 0) | get_framegrabber_param(AcqHandle, ‘TriggerOutIO’, TriggerOutIO) |
| 采集时间 | CaptureTimeUs | N/A | get_framegrabber_param (AcqHandle, ‘CaptureTimeUs’, CaptureTimeUs) |
| 对时方式 | sync type | set_framegrabber_param (AcqHandle, ‘SyncType’, ‘SyncType_host’) | get_framegrabber_param (AcqHandle, ‘SyncType’,SyncType ) |
| ntp服务器ip | NtpServerIp | set_framegrabber_param (AcqHandle, ’ NtpServerIp’, ‘203.107.6.88’) | get_framegrabber_param (AcqHandle, ‘NtpServerIp’, NtpServerIp) |
| 对齐同步 | SyncReady | N/A | get_framegrabber_param (AcqHandle, ‘SyncReady’, SyncReady) |
| 数据流同步 | StreamAsync | set_framegrabber_param (AcqHandle, ‘StreamAsync’,‘StreamAsync_depth’ ) | get_framegrabber_param (AcqHandle, ‘StreamAsync’, StreamAsync) |
| 图像同步 | cmos sync | set_framegrabber_param (AcqHandle, ‘CmosSync’,1 ) | get_framegrabber_param (AcqHandle, ‘CmosSync’, CmosSync) |
| 泛光使能 | flash light enable | set_framegrabber_param(AcqHandle,‘FlashLightEnable’,0) | get_framegrabber_param(AcqHandle,‘FlashLightEnable’,FlashLightEnable) |
| 泛光灯亮度 | flash light intensity | set_framegrabber_param(AcqHandle,‘FlashLightIntensity’,63) | get_framegrabber_param(AcqHandle,‘FlashLightIntensity’,FlashLightIntensity) |
5.2 旧版本Depth组件
| 分类 | 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|---|
| 打开/关闭Depth数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Depth’) | |||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘On’) | ||||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘Off’) | ||||
| 深度图的图像格式+分辨率 | image mode | set_framegrabber_param (AcqHandle, ‘ImageMode’, ‘DEPTH16_640x480’) | get_framegrabber_param (AcqHandle, ‘ImageMode’, ImageMode) | |
| Depth组件-SGBM参数 | 像素值的单位 | scale unit | set_framegrabber_param (AcqHandle, ‘ScaleUnit’, 1.0) | get_framegrabber_param (AcqHandle, ‘ScaleUnit’, ScaleUnit) |
| 用于深度计算的IR图像数量 | image number | set_framegrabber_param (AcqHandle, ‘SgbmImageNum’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmImageNum’, SgbmImageNum) | |
| 视差搜索范围 | disparity num | set_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, 320) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityNum’, SgbmDisparityNum) | |
| 开始搜索的视差值 | disparity offset | set_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, 16) | get_framegrabber_param (AcqHandle, ‘SgbmDisparityOffset’, SgbmDisparityOffset) | |
| 视差匹配窗口的高 | match window height | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, 15) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinHeight’, SgbmMatchWinHeight) | |
| 视差匹配窗口的宽 | match window width | set_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’,15 ) | get_framegrabber_param (AcqHandle, ‘SgbmMatchWinWidth’, SgbmMatchWinWidth) | |
| 相邻像素(+/-1)约束惩罚参数P1 | semi global param p1 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, 400) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1’, SgbmSemiParamP1) | |
| 相邻像素(+/-1)约束惩罚参数P1_scale | semi global param p1 scale | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’,10 ) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP1Scale’, SgbmSemiParamP1Scale) | |
| 相邻像素(+/-1)约束惩罚参数P2 | semi global param p2 | set_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, 100) | get_framegrabber_param (AcqHandle, ‘SgbmSemiParamP2’, SgbmSemiParamP2) | |
| 搜索滤波开关 | enable half window size | set_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmHfilterHalfWin’, SgbmHfilterHalfWin ) | |
| 最优匹配点与次优匹配点的百分比 | uniqueness factor param | set_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, 130) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueFactor’, SgbmUniqueFactor) | |
| 最优匹配点与次优匹配点差值的绝对值 | uniqueness min absolute diff | set_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, 1000) | get_framegrabber_param (AcqHandle, ‘SgbmUniqueAbsdiff’, SgbmUniqueAbsdiff) | |
| 左右一致性检查开关 | enable LRC | set_framegrabber_param (AcqHandle, ‘SgbmLrc’, 1) | get_framegrabber_param (AcqHandle, ‘SgbmLrc’, SgbmLrc ) | |
| 左右一致性检查阈值 | max LRC diff | set_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, 2500) | get_framegrabber_param (AcqHandle, ‘SgbmLrcDiff’, SgbmLrcDiff) | |
| 中值滤波开关 | enable median filter | set_framegrabber_param (AcqHandle, ‘SgbmMedfilter’,1 ) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilter’, SgbmMedfilter) | |
| 过滤噪点值 | median filter thresh | set_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, 250) | get_framegrabber_param (AcqHandle, ‘SgbmMedfilterThresh’, SgbmMedfilterThresh) | |
| TOF参数 | 深度质量 | depth quality | set_framegrabber_param(AcqHandle, ‘DepthQuality’, ‘DepthQuality_High’) | get_framegrabber_param(AcqHandle, ‘DepthQuality’, DepthQuality) |
| 抗阳光指数 | tof anti-sunlight index | set_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, 1) | get_framegrabber_param(AcqHandle, ‘TofAntiSunlightIndex’, TofAntiSunlightIndex) | |
| 最大斑点噪声尺寸 | MaxSpeckleSize | set_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,100) | get_framegrabber_param(AcqHandle,‘MaxSpeckleSize’,MaxSpeckleSize) | |
| 最大差异 | MaxSpeckleDiff | set_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,300) | get_framegrabber_param(AcqHandle,‘MaxSpeckleDiff’,MaxSpeckleDiff) | |
| 激光调制光强 | tof modulation threshold | set_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, 640) | get_framegrabber_param(AcqHandle, ‘TofModulationThreshold’, TofModulationThreshold) | |
| 抖动过滤 | tof jitter threshold | set_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, 10) | get_framegrabber_param(AcqHandle, ‘TofJitterThreshold’, TofJitterThreshold) | |
| 飞点滤波 | filter threshold | set_framegrabber_param(AcqHandle, ‘FilterThreshold’, 0) | get_framegrabber_param(AcqHandle, ‘FilterThreshold’, FilterThreshold) | |
| 调制频道 | tof channel | set_framegrabber_param(AcqHandle, ‘TofChannel’, 0) | get_framegrabber_param(AcqHandle, ‘TofChannel’, TofChannel) | |
| 高动态范围比 | HDR ratio | set_framegrabber_param(AcqHandle, ‘TofHdrRatio’, 8) | get_framegrabber_param(AcqHandle, ‘TofHdrRatio’, TofHdrRatio) |
5.3旧版本Color组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 打开/关闭Color数据流 | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_Color’) | ||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘On’) | |||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘Off’) | |||
| 图像格式 | image mode | set_framegrabber_param (AcqHandle, ‘ImageMode’,‘YUYV_640x480’ ) | get_framegrabber_param (AcqHandle, ‘ImageMode’, ImageMode) |
| 曝光时间 | exposure time | set_framegrabber_param (AcqHandle, ‘ExposureTimeInt’,10 ) | get_framegrabber_param (AcqHandle, ‘ExposureTimeInt’, ExposureTimeInt) |
| R通道增益 | r gain | set_framegrabber_param (AcqHandle, ‘R_GAIN’,10 ) | get_framegrabber_param (AcqHandle, ‘R_GAIN’, R_GAIN) |
| G通道增益 | g gain | set_framegrabber_param (AcqHandle, ‘G_GAIN’,10 ) | get_framegrabber_param (AcqHandle, ‘G_GAIN’, G_GAIN) |
| B通道增益 | b gain | set_framegrabber_param (AcqHandle, ‘B_GAIN’,10 ) | get_framegrabber_param (AcqHandle, ‘B_GAIN’, B_GAIN) |
| 模拟增益 | analog gain | set_framegrabber_param (AcqHandle, ‘AnalogGain’,10 ) | get_framegrabber_param (AcqHandle, ‘AnalogGain’, AnalogGain) |
| 自动增益 | auto gain ctrl | set_framegrabber_param (AcqHandle, ‘GainAuto’,‘Off’) | get_framegrabber_param (AcqHandle, ‘GainAuto’, GainAuto) |
| 自动曝光时间 | auto exposure(RgbAutoExpo) | set_framegrabber_param (AcqHandle, ‘ExposureAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘ExposureAuto’, ExposureAuto) |
| 自动白平衡 | auto balance(RgbAWB) | set_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’,‘Continuous’ ) | get_framegrabber_param (AcqHandle, ‘BalanceWhiteAuto’, BalanceWhiteAuto) |
| 区域自动曝光 | struct aec roi | set_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,987 ) | get_framegrabber_param (AcqHandle, ‘AEC_ROI_X’,AEC_ROI_X) |
| set_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,769 ) | get_framegrabber_param (AcqHandle, ‘AEC_ROI_Y’,AEC_ROI_Y) | ||
| set_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,132 ) | get_framegrabber_param (AcqHandle, ‘AEC_ROI_W’,AEC_ROI_W) | ||
| set_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,113 ) | get_framegrabber_param (AcqHandle, ‘AEC_ROI_H’,AEC_ROI_H) | ||
| 曝光目标Y | Target V(0-4000) | set_framegrabber_param (AcqHandle, ’ AE_TARGET_V’,3500) | get_framegrabber_param (AcqHandle, ’ AE_TARGET_V’, AE_TARGET_V) |
5.4 旧版本IR和Laser组件
| 属性名字 | 属性 | 写操作代码 | 读操作代码 |
|---|---|---|---|
| 打开/关闭左IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_LeftIR’) | ||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘On’) | |||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘Off’) | |||
| 打开/关闭右IR | set_framegrabber_param(AcqHandle, ‘SourceSelector’, ‘Source_RightIR’) | ||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘On’) | |||
| set_framegrabber_param(AcqHandle, ‘SourceMode’, ‘Off’) | |||
| 图像格式+分辨率 | image mode | set_framegrabber_param (AcqHandle, ‘ImageMode’,‘MONO8_1280x960’ ) | get_framegrabber_param (AcqHandle, ‘ImageMode’, ImageMode) |
| 畸变矫正 | Undistort | set_framegrabber_param(AcqHandle, ’ Undistort’, 0) | get_framegrabber_param(AcqHandle, ‘Undistort’, Undistort) |
| 曝光时间 | exposure time | set_framegrabber_param (AcqHandle, ‘ExposureTimeInt’,10 ) | get_framegrabber_param (AcqHandle, ‘ExposureTimeInt’, ExposureTimeInt) |
| 数字增益 | gain | set_framegrabber_param (AcqHandle, ‘GainInt’,32 ) | set_framegrabber_param (AcqHandle, ‘GainInt’, GainInt) |
| 模拟增益 | analog gain | set_framegrabber_param (AcqHandle, ‘AnalogGain’,10 ) | get_framegrabber_param (AcqHandle, ‘AnalogGain’, AnalogGain) |
| 高动态范围开关 | hdr | set_framegrabber_param(AcqHandle, ‘HdrEnable’, 1) | get_framegrabber_param(AcqHandle, ‘HdrEnable’, HdrEnable) |
| 高动态参数 | hdr parameter | set_framegrabber_param(AcqHandle,‘HDR_PARAM_x’,x) | get_framegrabber_param(AcqHandle,‘HDR_PARAM_x’, HDR_PARAM_x) |
| 激光是否打开 | LaserAutoCtrl | set_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’,0) | get_framegrabber_param (AcqHandle, ‘LaserAutoCtrl’, LaserAutoCtrl) |
| 激光强度 | LaserPower | set_framegrabber_param (AcqHandle, ‘LaserPower’,10 ) | get_framegrabber_param (AcqHandle, ‘LaserPower’, LaserPower) |
6.常见问题
Halcon V1.1.1版本下存在以下问题:
1.Halcon V1.1.1 版本连接两台相机(一台支持HDR,一台不支持HDR),读取或设置HDR 功能后,概率出现上报错误代码:5330。
2.Halcon V1.1.1 版本上不支持PresetMode读取及设置。
3.Halcon V1.1.1 在示例程序check_status.hdev中,打开不支持彩色图像的相机时,会出现错误代码 5329。建议在获取相机支持的组件后再尝试打开相应组件。
4.Halcon V1.1.1 版本下不支持 ToF Anti-interference 抗多机干扰功能的读取及设置。
5.Halcon V1.1.1 版本无法读取和设置固件版本低于 R3.13.84 的旧相机的曝光时间。
此外,Halcon V1.1.1版本在分辨率设置方面进行了标准化设计,导致以下限制:仅支持图像格式的读取,不支持图像格式设置。
图像分辨率仅支持最大分辨率及其 1/2、1/3、1/4 等分辨率的设置。
由于以上两个限制,TM265 相机的彩色格式仅支持 JPEG_1920x1080,不支持 YUYV_1280x720 和 YUYV_640x360。
深度格式仅支持DEPTH16 240x96,不支持xyz48 240x96。
类似地,PS800和FM815等相机的彩色格式和分辨率仅支持YUYV_2560x1920、YUYV_1280x960、YUYV_640x480,不支持 YUYV_1920x1440和CSI_BAYER12GBRG_2560x1920。
6.1 安装Halcon VSIX Installer失败

可能原因:运行vsix时,未检测到Halcon安装使用的vs库文件。
解决办法:点击View Install Log查看报错的原因,24.11版本点击close会自动跳转到安装所需库文件的页面,点击安装即可解决。
6.2 运行Percipio cti示例程序上报HALCON错误代码:5330,怎么办?

可能原因:可能安装了其他软件,导致GENICAM_GENTL64_PATH 存在多个值,且Halcon相关的值不在第一位,就会出现调用官方Halcon接口失败。
解决办法:将Halcon相关的环境变量值上移至第一位,点击确定。无需重启电脑,重新打开Halcon程序即可。
6.3 Halcon上报扩展错误码8600,怎么办?

可能原因:可能是因为安装Halcon的时候未安装GenICam、GigeVision等部件。
解决方法:重新下载Halcon安装包,参考Halcon安装与环境配置,重新安装Halcon。
7.SDK更新记录
7.1 1.1.0版本更新
主要是标准化相关的改动,目标是尽量与GenICam SFNC文件靠近。
1.Gain设置:先用GainSelector选择Gain类型,再用Gain读写具体数值,数值使用浮点数。
2.ExposureTime设置:改用us为单位的浮点数,需依赖新固件完成换算。
3.Trig设置:仅支持软触发和硬触发且不作区分,使用TriggerMode属性开启或关闭触发,使用TriggerSoftware发送软触发。
4.Trig边沿设置:使用TriggerActivation属性设置。
5.Trig延时设置:使用TriggerDelay属性设置,数值为单位us的浮数。
6.KeepAliveOnoff/KeepAliveTimeout修改为DeviceLinkHeartbeatMode/DeviceLinkHeartbeatTimeout。
7.PacketDelay/PacketSize修改为GevSCPD/GevSCPSPacketSize。
8.PersistentIP/PersistentNetmask/PersistentGateway修改为GevPersistentIPAddress/GevPersistentSubnetMask/GevPersistentDefaultGateway
9.NtpServerIP由点分十进制字符串修改为整数类型。
10.SourceSelector/SourceMode修改为SourceSelector/ComponentEnable。
11.取消ImageMode设置,仅支持相机的最大分辨率,以及原本支持的二分之一、四分之一等分辨率,缩减比例通过BinningHorizontal/BinningVertical设置。
12.支持通过Width/Height读取图像分辨率,修改BinningHorizontal/BinningVertical后Width/Height属性会自动变化。
13.支持通过PixelFormat读取格式,IR仅支持Mono8/Mono16,Color仅支持RGB8,Depth仅支持Coord3D_ABC32f(点云)。
新版V1.1.0版本的主要更改点如下:
| 修改点 | 描述 |
|---|---|
| Gain设置 | 选择Gain类型:GainSelector 读写Gain值(浮点数):Gain |
| ExposureTime设置 | 设置曝光时间(单位:us,类型:Float。FW:≥ R3.13.84) |
| Trig设置 | 触发模式:TriggerMode(开启/关闭) 发送软触发:TriggerSoftware 注意:开启:触发模式,关闭:自由采集模式。 |
| Trig延时设置 | 设置触发延时(us为单位的浮点数):TriggerDelay |
| KeepAlive修改 | 心跳模式:DeviceLinkHeartbeatMode 心跳超时:DeviceLinkHeartbeatTimeout |
| Packet设置修改 | 包延时:GevSCPD 包大小:GevSCPSPacketSize |
| Persistent网络设置修改 | 持久IP地址:GevPersistentIPAddress 子网掩码:GevPersistentSubnetMask 默认网关:GevPersistentDefaultGateway |
| NtpServerIP修改 | NTP服务器IP(整数类型):NtpServerIP |
| Source设置修改 | 源选择器:SourceSelector 组件启用:ComponentEnable |
| 取消ImageMode设置 | 仅支持最大分辨率及二分之一、四分之一等, 通过BinningHorizontal或BinningVertical设置。 |
| 分辨率和Binning | 读取分辨率:Width/Height 修改Binning后,Width/Height自动变化 |
| PixelFormat读取 | IR支持:Mono8、Mono16 Color支持:RGB8 Depth支持:Coord3D_ABC32f(点云) |
7.2 1.1.5 版本更新
1.支持系列属性的最大最小值
2.支持若干新属性(SGBM-TEXTURE纹理属性)及自动加载json
7.3 2.1.6版本更新
1.更新了tycam sdk 版本至4.2.11
2.相机XML更改了逻辑,追加ComponentSelector节点前 增加了检查逻辑:
如果已存在ComponentSelector节点,则不再新增,这个只是为了预兼容后面相机固件可能本身xml自带ComponentSelector引发冲突,对当前相机固件没有影响
8.参考代码例子
8.1 待补充
更多推荐
所有评论(0)