主要内容

硬件触发采集与GigE视觉摄像机

图像采集工具箱提供硬件触发采集GigE视觉摄像机的功能。这在相机采集需要通过外部触发信号与另一个设备(如DAQ设备或另一个相机)同步的应用程序中很有用。其他应用包括用外部信号控制采集帧率,或为高动态范围(HDR)成像获取多次曝光图像序列。这个例子展示了如何使用videoinput吉埃接口配置相机采集,以允许外部触发信号控制的帧率和超过曝光时间。

需求和硬件设置

  • MATLAB R2016A或更高版本,图像采集工具箱和“GigE Vision硬件”支持包。金宝app

  • Gige Vision兼容具有硬件触发功能的相机;此示例使用Basler ACA1300。

  • 千兆以太网适配器,提供直接摄像机网络连接,如“GigE Vision快速启动配置指南”所述。

  • 外部触发设置,可向相机触发线输入提供触发信号。例如,可以使用带有数字输出的DAQ设备、Arduino板或函数发生器仪器输出自定义触发信号。请参阅相机用户手册,了解触发信号的电压水平/电流要求以及相机输入线路的正确信号连接。

连接到相机

创建一个videoinput与所需的视频格式,并获得访问相机设备的特定属性。当使用videoinput吉埃适配器,摄像机GenICam的特征和参数值表示为videoinput源属性。

v = VideoInput('gige', 1“Mono8”);s = v.Source;%确定如上所述的最佳流参数《GigE Vision快速入门配置指南》s.PacketSize = 9000;%s.packetdelay =

立即收购

默认情况下,当videoinput开始如果未明确指定硬件触发配置,则执行函数。为简单起见,该示例执行有限数量的帧获取,并将它们存储在Matlab基础工作空间中。

%设置曝光时间和模式s.exposuremode =“时间”;s.ExposureTimeAbs = 4000;%默认的视频输入触发类型是'immediate',这是显式的为清晰起见,此处配置了%。triggerconfig (v,'即时');%指定要获取的帧数v.framespertrigger = 30;v.TriggerRepeat = 0;%开始持续缓冲采集并等待采集完成开始(v);等待(v, 10);将获取的帧从获取输入缓冲区转移到工作区。data = getData(v,v.framesavailable);

显示了框架。

图;IMAQMONTAGE(数据)

FrameStart触发

大多数Gige视觉摄像机支持FRAMESTART硬金宝app件触发模式,用于配置摄像机以获取应用于相机线路输入的每个上升沿(或下降沿)信号的帧。在该示例中,函数发生器仪器用于提供施加到相机'Line1'输入的25 Hz外周期方波信号,并且信号频率有效地控制相机帧速率。

当使用吉埃适配器,配置硬件触发采集,videoinput触发器类型需要设置为“硬件”,而其余的配置是通过videoinput源属性,代表相应的相机Genicam特征/参数。

%指定要获取的总帧数为每个外部信号脉冲获取%一帧。numFrames = 30;v.FramesPerTrigger = 1;v.TriggerRepeat = numFrames - 1;%指定“硬件”视频输出触发类型triggerconfig (v,'硬件'“DeviceSpecific”“DeviceSpecific”);

将摄像机配置为FrameStart触发模式,并指定外部触发信号输入线路和所需触发条件。

%这需要先设置触发器选择器;一次TriggerSelector选择%值,设置触发属性(例如,% TriggerMode to 'on')只应用于指定的触发模式(FrameStart)。s.TriggerSelector =“FrameStart”;s.TriggerSource =“Line1”;s.TriggerActivation =“升天德”;s.triggermode =“上”为每一帧指定一个恒定的曝光时间s.exposuremode =“时间”;s.ExposureTimeAbs = 4000;%启动硬件触发的缓冲连续采集,等待%收购完成开始(v)等(v, 10)从采集输入缓冲区中的%传输获取的帧和时间戳%到工作区[data2,ts2] = getData(v,v.framesavailable);

显示采集到的帧和图的时间戳差异,对应于外部触发信号的25hz频率。

图;IMAQMONTAGE(DATA2)图;绘图(差异(TS2),“。”)xlabel(“帧索引”);ylabel ('Diff(时间戳)');

注意:一些相机型号也支持一个acquisition star金宝appt触发器,根据相机型号和配置,它可以用作多帧采集的启动触发器,或者作为FrameStart触发器的启动器。

暴露时间控制

某些GigE视觉相机模型支持通过外部信号脉冲宽度持续时间控制每个帧的金宝app曝光时间。可以通过FRAMESTART硬件触发模式和触发WIDTH曝光模式实现此配置。

可能的应用包括高动态范围(HDR)成像,其中外部触发信号可以是一系列不同脉冲宽度持续时间的脉冲。关于如何使用Arduino板生成自定义触发信号的简单示例,请参考以下URL:>

%指定要获取的总帧数为每个外部信号脉冲获取%一帧。numFrames = 30;v.FramesPerTrigger = 1;v.TriggerRepeat = numFrames - 1;%指定“硬件”视频输出触发类型triggerconfig (v,'硬件'“DeviceSpecific”“DeviceSpecific”);

将摄像机配置为FrameStart触发模式,并指定外部触发信号输入线路和所需触发条件。

%这需要先设置触发器选择器;一次TriggerSelector选择%值,设置触发属性(例如,% TriggerMode to 'on')只应用于指定的触发模式(FrameStart)。s.TriggerSelector =“FrameStart”;s.TriggerSource =“Line1”;s.TriggerActivation =“升天德”;s.triggermode =“上”曝光时间控制的%,配置触发曝光模式。s.exposuremode =“TriggerWidth”%指定相机曝光时间,单位为微秒s.ExposureOverlapTimeMaxAbs = 5000;%启动硬件触发的缓冲连续采集,等待%收购完成开始(v)等(v, 10)从采集输入缓冲区中的%传输获取的帧和时间戳%到工作区[data3, ts3] = getdata(v, v. framesavailable); / /当前帧

显示获取的帧和情节时间戳差异。

图;imaqmontage (data3)图;情节(ts3,“。”)xlabel(“帧索引”);ylabel ('时间戳');图;情节(diff (ts3),“- x”);包含(“帧索引”);ylabel ('Diff(时间戳)');

可以进一步处理每个获取的多曝光图像序列以获得高动态范围图像。