实验室师弟买了个AVT的千兆网相机做实验观测用,但是自带的相机观测软件太难用了,还没有录制视频的功能,所以就找我写了个带观测和视频录制的软件,这个不算是实验室的东西,就共享源代码了。

界面

0.png

说明

整体功能和之前的Grab很像,但是界面上我做了提升,整体软件代码结构也调整了下,当然显示和录制视频都是基于MIL的,所以如果说之前的Grab没有源代码的话,看这个的源代码也是好的。

功能

1.放大、缩小和原比例显示
2.显示采集帧数和当前时间
3.单帧采集和连续采集
4.在线录制

代码说明

看源代码的时候要注意,相对于MIL8,MIL为了保证性能最好如下设置:
MdispControl(m_milDisplay, M_UPDATE_SYNCHRONIZATION, M_ASYNCHRONOUS);
这样设置异步更新显示,同时分配内存的时候使用M_ON_BOARD以充分利用Matrox采集卡强大的图像功能,
如果不这样做很有可能显示不顺畅或录制视频的时候直接卡死。

至于AVT采图API 这里使用最新的Vimba 1.3库,不过硬件库也都是差不多,无非是设置参数和回调处理。

下载

基于MIL源代码(包含可执行文件)下载链接

如上的代码都是基于MIL的,如果你只是想独立的开发Windows上的显示和观测软件,这里是我写的用GDI显示的一个版本,当然这里不用MIL也就依赖不了MIL的录制功能,所以他是没有录制功能的,如果要录制估计要用到Direct库了。
GDI和上面的MIL版本没什么太大的差别,都是设置参数和回调处理,唯一的不同的是MIL显示由MIL显示线程负责,而GDI必须自己处理显示。从相机拿出的原始raw数据,MIL中直接使用MbuPut完成数据格式的重组,在GDI中我们使用VmbImageTransform来完成。

基于GDI源代码(包含可执行文件)下载链接