手动计算时间如下:
# 像素个数:
1280 * 960= 1,228,800 pixel=1228800*8 bit (每像素是0-255就是8bit存储,如果数据深度10位就乘10)
# RGB格式,
1个像素对应3个Byte来表示,总数据量为: 1,228,800 * 38 = 36864008bit
#总读出时间
1000 / 15 = 66.6666 毫秒 (1S=1000ms,假设15为最大帧率)
#常见网口相机
千兆网理论最大速度1000Mbit/s=125MByte/s,按理想状态传递,以黑白相机为例
1228800*8 bit/(1000Mbit/s)
=1228800 Byte/125 MByte/s
=1228800 Byte/125/1024 Byte/s
=9.6ms
# 结论
工作中主要关注的是上位机下发触发指令到相机回调函数接收到图像的时间,也就是总的读取图像的时间,实际分成三个部分
- 快门
- 光电硬件处理
- 传输
- 快门=曝光时间,通过增加光源亮度可以合理减少曝光时间;另外相机属性里增益,DigitalShift,还有一个gamma校正都是与图像亮度相关的参数,看图像需要做的处理而调节
- 光电硬件处理时间:这个跟CCD/CMOS芯片本身相关
- 传输时间:
- 减少数据量=减少相机取图时的ROI;
- 加快传输速度=换更快传输协议的相机,如USB3.0,最大传输速度在千兆网的3倍左右
- 大于大尺寸的图像,传输要考虑CameraLink接口相机