主要内容

确定收购的速度

这个例子展示了如何使用提供的时间戳GETDATA函数,并使用MATLAB®估计设备的帧率函数。

步骤1:访问和配置一个设备。

创建一个视频输入对象和访问它的视频源对象来配置所需的采集速度。收购率的值是由设备特定的帧速率视频源对象的属性。

请注意,由于帧速率是一个设备特定的属性,并不是所有的设备可能支持它。金宝app

%访问一个图像采集设备。vidobj = videoinput (“winvideo”1);%配置帧的数量记录。vidobj。FramesPerTrigger = 50;%跳过前几帧设备提供%在测井资料。vidobj。TriggerFrameDelay = 5;%访问设备的视频源。src = getselectedsource (vidobj);%确定设备特定的帧率(每秒帧数)。帧率=集(src,的帧速率)
帧率=“30.0000”“24.0000”“8.0000”
%配置设备的帧率最高的可用的设置。src。帧速率=帧速率{1};actualRate = str2num(帧速率{1})
actualRate = 30

步骤2:日志和检索数据。

发起收购和检索记录的框架和时间戳。

%开始收购。开始(vidobj)%等数据记录检索数据之前结束。设置等待时间% =预计获得时间帧的数量% +指定一点缓冲时间,以适应开销。waittime = actualRate * (vidobj。FramesPerTrigger + vidobj.TriggerFrameDelay) + 5;等待(vidobj waittime);%检索数据和时间戳。(框架,时间戳)= getdata (vidobj);

步骤3:计算收购率。

策划每一帧的时间戳,可以确认收购的速度是恒定的。

%图像帧与时间。情节(时间戳,“x”)包含(“帧索引”)ylabel (“时间(s)”)

的平均时间差异也可以决定比较预期的采集速度。

%找到时间帧之间的区别。diffFrameTime = diff(时间戳);%图的时间差异。情节(diffFrameTime“x”);包含(“帧索引”)ylabel (“时差(s)”)ylim([0点])

%的平均时间帧之间的区别。avgTime =意味着(diffFrameTime)
avgTime = 0.0333
%确定实验帧速率。expRate = 1 / avgTime
expRate = 30.0245

比较实验的时差和已知的帧速率,可以计算百分比误差。自从通用USB摄像头作为采集设备,可以预料到的是,实际设备的帧速率波动。

%确定之间的百分比误差和实际帧速率决定。diffRates = abs (actualRate - expRate)
diffRates = 0.0245
percentError = (diffRates / actualRate) * 100
percentError = 0.0817
%一旦不再需要视频输入对象,删除%,清晰的工作区。删除(vidobj)清晰vidobj