Hardware-Triggered收购GigE视觉相机
图像采集工具箱™提供功能从视觉GigE hardware-triggered收购®相机。这是有用的应用程序中,摄像头采集需要同步与另一个设备(如采集设备或另一个相机)通过一个外部触发信号。其他应用包括控制与外部信号采集的帧速率,或获得多次曝光图像序列对高动态范围(HDR)成像。这个例子展示了如何使用videoinput
gige
接口配置摄像头采集允许外部触发信号控制帧速率和曝光时间。
需求和硬件设置
MATLAB®R2016a或后,图像采集的工具箱和图像采集的工具箱支持包GigE视觉硬件。金宝app
GigE愿景与硬件兼容的相机触发功能。这个示例使用巴斯勒acA1300 GigE相机。
千兆以太网适配器,它提供了一个直接的相机网络连接,配置为中描述GigE视觉图像采集快速入门指南。
外部触发设置相机触发线可以提供一个触发信号输入。例如,采集设备与数字输出,一个Arduino®,或一个函数发生器仪器可以用来输出一个自定义的触发信号。指的是相机触发信号电压水平/电流需求的用户手册和正确的信号连接到相机输入线。这个例子使用一个Arduino大型2560板,已经配置为发送触发信号。
连接到相机
创建一个videoinput
对象所需的视频格式和获得相机设备特定的属性。当使用videoinput
gige
适配器,相机GenICam特性和参数值表示为videoinput
源属性。
v = videoinput (“gige”,“1”,“Mono8”);s = v.Source;
您可以确定最优流参数中描述GigE视觉图像采集快速入门指南。这些值将为您的设置是不同的。
年代。PacketSize = 9000;年代。PacketDelay = 17327;
捕捉帧直接收购
默认情况下,立即收购发生时调用videoinput
开始
功能和硬件触发配置没有指定。为简单起见,这个示例执行收购有限数量的帧,并将它们存储在MATLAB工作区。
triggerconfig (v,“立即”);
设置曝光时间和模式。
年代。ExposureMode =“时间”;年代。ExposureTimeAbs = 4000;
指定的帧数。
v。FramesPerTrigger = 30;v。TriggerRepeat = 0;
开始连续采集和缓冲等待收购完成。
开始(v);等待(v, 10);
保存了帧采集输入缓冲区的工作区。
data = getdata (v, v.FramesAvailable);
显示了框架。
图;imaqmontage(数据)
停止收购。
停止(v)
捕捉帧与FrameStart
触发
大多数GigE视觉相机支持金宝appFrameStart
硬件触发模式,用于配置每个前沿的相机获取一帧(或下降沿)信号应用于相机行输入。在这个例子中,使用一个Arduino提供外部周期方波信号应用于相机的Line1
输入。信号频率有效控制摄像机的帧速率。
当使用gige
适配器配置硬件触发采集,videoinput
触发类型必须设置硬件
。剩下的配置使用videoinput
源属性,代表相应的相机的特性和参数。
指定帧被收购的总数。一帧为每个外部获得脉冲信号。
numFrames = 30;v。FramesPerTrigger = 1;v。TriggerRepeat = numFrames - 1;
指定videoinput
触发类型硬件
。
triggerconfig (v,“硬件”,“DeviceSpecific”,“DeviceSpecific”);
配置的相机FrameStart
触发模式,并指定所需的外部触发信号输入线和触发条件。
年代。TriggerSelector =“FrameStart”;年代。TriggerSource =“Line1”;年代。TriggerActivation =“RisingEdge”;年代。TriggerMode =“上”;
设置曝光时间和模式。
年代。ExposureMode =“时间”;年代。ExposureTimeAbs = 4000;
开始连续采集和缓冲等待收购完成。
开始(v);等待(v, 10);
保存了框架和时间戳从采集输入缓冲区到工作区中。
[data2 ts2] = getdata (v, v.FramesAvailable);
显示了框架。
图;imaqmontage (data2)
情节时间戳差异,对应于10赫兹的频率外部触发信号。
图;情节(diff (ts2),“- x”0.2)ylim ([0]);包含(“帧索引”);ylabel (“diff(时间戳)(s)”);
停止收购。
停止(v)
捕捉帧通过控制曝光时间
某些GigE摄像机模型支持控制曝光时间的每一帧由外部信号脉冲宽度。金宝app这个配置可以与实现FrameStart
和硬件触发模式TriggerWidth
曝光模式。
可能的应用包括高动态范围(HDR)成像,在外部触发信号可以是一个序列不同脉宽的脉冲持续时间。在本例中,生成的触发信号的Arduino程序输出一个重复的脉冲序列的脉冲宽度(5、10、20、50 ms)与脉冲之间的50毫秒的延迟。为一个简单的例子,如何生成一个自定义的触发信号使用Arduino,明白了如何配置hardware-triggered收购从GigE视觉相机?。
指定帧被收购的总数。一帧为每个外部获得脉冲信号。
numFrames = 30;v。FramesPerTrigger = 1;v。TriggerRepeat = numFrames - 1;
指定videoinput
触发类型硬件
。
triggerconfig (v,“硬件”,“DeviceSpecific”,“DeviceSpecific”);
配置的相机FrameStart
触发模式,并指定所需的外部触发信号输入线和触发条件。
年代。TriggerSelector =“FrameStart”;年代。TriggerSource =“Line1”;年代。TriggerActivation =“RisingEdge”;年代。TriggerMode =“上”;
曝光时间控制,配置一个TriggerWidth
曝光模式。
年代。ExposureMode =“TriggerWidth”;
指定相机ExposureOverlapTimeMaxAbs
在微秒。
年代。ExposureOverlapTimeMaxAbs = 5000;
开始连续采集和缓冲等待收购完成。
开始(v);等待(v, 10);
保存了框架和时间戳从采集输入缓冲区到工作区中。
[data3, ts3] = getdata (v, v.FramesAvailable);
显示了框架。
图;imaqmontage (data3)
图;情节(diff (ts3),“- x”);ylim ([0.05 - 0.11]);包含(“帧索引”);ylabel (“diff(时间戳)(s)”);
停止收购。
停止(v)
每个获得多次曝光图像序列可以进一步加工来获取高动态范围图像通过使用函数在图像处理工具箱™。
清理
当你完成工作,你的相机,清理工作区。
删除(v)清晰v