
1.4 开发界面设计
1.4.1 基本信息获取
首先确保摄像头已经连接且处于正常工作状态,可以利用MATLAB图像视频处理工具箱的imaqhinfo函数进行检测,通过检测确定安装了适配器winvideo,用此适配器的名称能够连接视频图像的采集设备,获取该采集设备的硬件信息,使用函数的命令格式如下:

运行结果如下:

包含以下字段的struct:

若想获得更多关于硬件设备的信息,可使用以下命令:

运行结果如下:

包含以下字段的struct:

从上述结果中能获取适配器名称、设备ID和设定的视频格式。接下来用videoinput函数和preview函数就能够完成视频输入对象的创建及视频流的预览。这些信息在之后的代码里将会用到。
设计中会用到一些MATLAB有关视频图像采集的基本代码,首先是Videoreader函数,该函数用于读取视频文件对象,调用格式为:

其中,obj是结构体,包含如下内容。
(1)Name:所提取视频文件的名称。
(2)Path:提取视频所在的文件路径。
(3)Duration:视频的总时长(以秒计时)。
(4)FrameRate:视频的帧速或帧率。
(5)NumberOfFrames:视频的总帧数。
(6)Height:视频的高度。
(7)Width:视频的宽度。
(8)BitsPerPixel:视频帧每个像素所对应的数据长度。
(9)VideoFormat:视频的类型,如RGB24。
(10)Tag:视频对象的标识符,默认为空字符串。
(11)Type:视频对象的类名,默认为VideoReader。
在不同的操作系统中,Videoreader函数读取的视频文件类型不同,但是在所有系统中都可以读取avi类型的视频,所以后续采集与读取的视频类型均设定为avi(避免因为视频文件类型不同,而对读取的原视频进行视频类型转换)。
其他相关函数还有get(获取所读取视频文件的参数)及set(设置视频对象的参数,与get相对应)。这几个函数在之后的视频文件读取、视频信息获取、视频图像互相转换中会用到。