为了保证相机图像采集帧率,通常最好的方式是开启一个子工作线程,将采集到的图像经过处理后显示到界面控件上。这时候为了保证充分发挥相机性能,使用一个无限循环来采集图像,同时为了保证显示的帧率,尽量在采集后立马显示,但是当帧率过高时,如果还按无限循环的采集,同时往主界面线程中发送图片采集完成信号的方式,在主界面中处理对应显示槽函数。帧率太高后,就会出现在主界面线程中需要大量的时间来处理图片采集信号,很容易造成界面卡顿现象。
为了解决上述问题,在保证采集帧率同时,也尽可能保证显示帧率,可在发送信号前面,增加一个全局变量来判断对应槽函数是否执行完成,只有在对应槽函数执行完成后,才能再次发送图片采集完成信号,通过该变量来控制发送信号的频率,这样既能保证采集帧率,也能保证显示帧率,同时还能保证界面流畅,因为在主界面事件循环中,图片采集完成的信号跟其他的界面信号比例差不多。执行起来基本就不会有卡顿现象了!