理论教育 机器人视觉技术实现探究

机器人视觉技术实现探究

时间:2023-06-17 理论教育 版权反馈
【摘要】:VFW以消息驱动方式对视频设备进行存取,可以很方便地控制设备数据流的工作过程。为了能够实时采集并处理图像信息,我们在机器人平台中采用VFW作为应用层的图像采集工具,直接对内存中的视频数据进行操作。VFW的开发工具为用户提供了一套应用编程接口,通过开发工具,主要利用回调函数开发实现机器人视觉处理。

机器人视觉技术实现探究

目前,在Windows平台下进行图像采集一般采用两种方式:一种是基于视频采集卡所附带的二次软件开发包(Software Development Kit——SDK)进行,这种方式的优点是应用方便,容易上手,缺点是对硬件的依赖性较强,灵活性差,且功能参差不齐,不能充分满足各种视频应用程序的开发需要;另一种方式是基于VFW(Video for Windows,微软的视窗视频操作环境)进行的,它的特点是播放视频时不需要专用的硬件设备,而且应用灵活,可以满足视频应用程序开发的需要,Windows操作系统自身就携带了VFW,系统安装时,会自动安装VFW的相关组件。

目前,大多数的视频采集卡驱动程序都支持VFW接口,它主要包括多个动态连接库,通过这些组件间的协调合作,来完成视频的捕获、视频压缩及播放功能。VFW以消息驱动方式对视频设备进行存取,可以很方便地控制设备数据流的工作过程。为了能够实时采集并处理图像信息,我们在机器人平台中采用VFW作为应用层的图像采集工具,直接对内存中的视频数据进行操作。

1.VFW简述

VFW是Microsoft公司推出的基于Windows的视频操作环境,它提出了AVI文件标准,其中规定了视频和音频的交错存放格式。VFW的开发工具为用户提供了一套应用编程接口(API),通过开发工具,主要利用回调函数开发实现机器人视觉处理。VFW工具包主要由6个模块组成:

AVICAP.DLL:包含执行视频采集的函数,它给AVI文件I/O和视频、音频设备驱动提供高层接口。

MSVIDEO.DLL:用一组DrawDib函数回放视频。

MCIAVI.DRV:该驱动提供对VFW的MCI命令的解释。

AVIFILE.DLL:支持由标准多媒体I/O(mmio)函数提供的高层命令来访问文件。

视频压缩管理器(VCM):管理用于视频压缩/解压的编码器(Codec)。(www.daowen.com)

音频压缩管理器(AVM):提供与VCM类似的功能,不同的是它适用于波形音频。波形音频是计算机播放音频的一种重要形式,它存储声音的波形信息。其特点是当播放波形音频时,不管播放文件的设备是何种类型,都会得到相似声音。

2.实时图像采集

1)在实现视频采集之前,首先利用Windows API的AVICAP组件函数capCreateCapt-ureWindo w()建立视频捕获窗口初始化采集窗体的各项属性,如设置窗体大小、位置属性、标志位等。它是所有捕获工作及设置的基础,其主要功能包括:①动态地同视频和音频输入器连接或断开;②设置视频捕获速率;③提供视频源、视频格式以及是否采用视频压缩的对话框;④设置视频采集的显示模式为Overlay或Preview;⑤实时获取每一帧视频数据;⑥将一视频流和音频流捕获,并保存到一个AVI文件中;⑦捕获某一帧数字视频数据,并将单帧图像以DIB格式保存;⑧指定捕获数据的文件名,并能将捕获的内容复制到另一个文件中。

2)通过capDriveConnect()宏连接捕获窗口与视频捕获卡。

3)通过capDriverGetCaps()宏来获取视频设备的能力,通过capGetStatus()宏来获取视频设备的状态。

4)通过capPreview(m_hCapWnd,TRUE)宏设置视频采集的显示模式为Preview。视频显示有Overlay和Preview两种模式。在Preview模式下,要占用系统资源,视频由系统调用GDI函数在捕获窗口显示,显示速度慢,它支持RGB视频格式。在Overlay下,捕获视频数据不占系统资源,显示速度快,视频采集格式为YUV(Y代表亮度信号,U、V是两个色差信号)格式。

5)通过capPreviewRate(m_hCapWnd,30)宏设置视频采集的显示图像更替率为30帧/s。

6)采集数据进行实时处理,则利用回调机制,由capSetCallbackOnFrame(m_hCap-Wnd,OnFrame)完成单帧视频采集。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈