主要内容

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

图像采集工具箱提供了从GigE Vision摄像机的硬件触发采集功能。这在需要通过外部触发信号与另一个设备(如DAQ设备或另一个摄像机)同步的应用程序中非常有用。其他应用包括控制采集帧率与外部信号,或获取多曝光图像序列的高动态范围(HDR)成像。控件的使用方法videoinputgige接口配置相机采集,允许外部触发信号控制帧率和曝光时间。

需求和硬件设置

  • MATLAB R2016a或以上版本,图像采集工具箱,和“GigE视觉硬件”支持包。金宝app

  • 具有硬件触发功能的GigE Vision兼容摄像头;本例使用Basler acA1300。

  • 千兆以太网适配器,提供直接的摄像头网络连接,配置如“千兆视觉快速入门配置指南”中所述。

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

连接到相机

创建一个videoinput用所需的视频格式和获取相机设备的特定属性。当使用videoinputgige适配器、相机GenICam特征和参数值分别表示为videoinput源属性。

v = videoinput (“gige”, 1“Mono8”);s = v.Source;确定最佳流参数GigE Vision快速启动配置指南s.PacketSize = 9000;% s.PacketDelay =

直接收购

默认情况下,立即收购发生在videoinput开始如果未显式指定硬件触发配置,则执行。为简单起见,本例获取有限数量的帧,并将它们存储在MATLAB基础工作区中。

%设置曝光时间和曝光模式s.ExposureMode =“时间”;s.ExposureTimeAbs = 4000;默认的videoinput触发器类型是'immediate',这是显式的%配置在这里是为了清楚。triggerconfig (v,“立即”);%指定要获取的帧数v.FramesPerTrigger = 30;v.TriggerRepeat = 0;%启动连续缓冲采集并等待采集完成开始(v);等待(v, 10);将采集到的帧从采集输入缓冲区传输到工作空间。数据= getdata(v, v. framesavailable);

显示了框架。

图;imaqmontage(数据)

FrameStart触发

大多数GigE Vision摄像机支持FrameS金宝apptart硬件触发模式,该模式用于配置摄像机以获取应用于摄像机线输入的每个上升沿(或下降沿)信号的帧。在本例中,使用函数发生器仪器向摄像机“Line1”输入提供一个25 Hz的外部周期方波信号,信号频率有效地控制摄像机帧率。

当使用gige适配器,以配置硬件触发收购videoinput触发器类型需要设置为“硬件”,而其余的配置是通过videoinput源属性,表示相应的相机GenICam特征/参数。

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

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

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

显示采集到的帧并绘制时间戳差异,它们对应于外部触发信号的25hz频率。

图;imaqmontage (data2)图;情节(diff (ts2),“。”)包含(“帧索引”);ylabel (“diff(时间戳)(s)”);

注意:一些相机型号也支持一个acquisition star金宝appt触发器,这取决于相机型号和配置,可以作为一个多帧获取的启动触发器,或作为一个FrameStart触发器的使能器。

曝光时间的控制

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

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

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

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

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

显示获得的帧并绘制时间戳的差异。

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

对获得的每个多次曝光图像序列进行进一步处理,获得高动态范围的图像。