采集帧率与处理帧率能达到一致吗?
版主图中可以看到1S有10帧,处理帧率为9,那么每秒丢失了1张,这样理解是否正确?此外程序板中看到开辟的内存空间名为cam1,那在这个内存中每个时刻只能放一张,对吗? 这个不是这样理解的呀。这里的采集帧率与处理帧率,是指相机本身的采集以及调用函数的次数呀。采集是指相机本身采集了多少张图像。调用,是指当前的函数被调用了多少次。
可以打开帧率显示的函数看看就知道其中的内容了。
从这个函数的程序框图中看到,其计算都是使用了(当前数-历史数)*1000/两次调用函数之间的时间=帧率
只是这里的当前数和历史数,采集帧率与处理帧率使用的是数据不一样罢了。
采集帧率,是直接读取图像采集函数中的缓存序列号,这个函数得到相机中的缓存图像数量(两次调用的图像号不一样(相机采集的图像号是+1操作的),然后输入到Buffer number中。在两次时间范围内,相机真实采集的图像数量会反应在这个数据中。
而处理数量则是通过帧率统计函数中添加了一个移位寄存器,然后在更新周期内,每调用一次帧率计算函数+1的过程来计算的。也就是说,如果你调用这个帧率统计函数比较慢,那么这个处理数量则会小于相机的采集速度。当然,如果这个速度跟采集速度一样,那么是可以相等的,在你的问题中,反应的小一张图像,是因为统计帧率的函数的处理数量是从0开始的,如果你把这个值改成1,那么这两个值就是一样的了。
这里是在处理帧率更新周期内调用函数的次数的累积。
其实这个处理帧率与采集帧率,在MAX中是有显示的,只是这里叫作显示帧率和采集帧率。
而对于实际的应用程序,采集帧率与处理帧率可以达到一致,也可以不一致。
一个图像缓存,只能存储一张图像。如有更新,则覆盖前面的图像。
页:
[1]