Image_Acquisition_Toolbox_第1页
Image_Acquisition_Toolbox_第2页
Image_Acquisition_Toolbox_第3页
Image_Acquisition_Toolbox_第4页
Image_Acquisition_Toolbox_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、很好的资料哦,加油。MATLAB 图像采集工具箱1 入门指南通过简单的实例是学习图像处理工具箱功能的最好方法。本章所介绍的工具箱, 通过实现一个简单的运动检测的应用程序演示了创建一个图像采集应用程序基本的步骤。示例交叉引用其他章节的内容,其相关概念的更多细节可以查看相应章节。1.1 产品概述1.1.1 引言图像采集工具箱软件是MATLAB数值计算环境能力扩展的一个功能集合。此工具箱提供了许多图像采集操作,其中包括:通过各种图像采集设备获取图像,从专业级别的图像采集到基于USB的网络摄像机l 查看直播视频输出的预览画面l 图像触发采集(包括外部硬件触发)l 当某事件发生时执行配置好的带返回的函数

2、l 将图像数据输入到MATLAB工作空间许多图像采集工具箱的功能是MATLAB文件。我们能使用如下声明查看这些函数的MATLAB源代码:type function_name你可以通过写自己的MATLAB文件扩展图像采集工具箱的功能,或者联合使用其他工具箱,例如图像处理工具箱软件和数据采集工具箱软件。图像采集工具箱软件同时包含了一个Simulink模块,称为视频输出设备,你可以用该提供即时视频数据输入到仿真模块中。1.1.2 安装和配置笔记在MATLAB命令行键入如下命令,确认在你的系统中是否已经安装了图像采集工具箱软件。Ver当你输入此命令后,MATLAB显示关于你正运行的MTALAB版本信息

3、,包括安装在你的系统中的所有工具箱和版本数据的一个列表。有关安装工具箱的的信息,请查看MTALAB安装指南。有关最新的系统需求,可以在Mathworks 网站()可用产品区,查看系统需求页面。1.1.3 图像处理工具箱软件需要使用图像采集工具箱软件图像采集工具箱产品包括了图像采集工具,需要你在启动MATLAB R2008b时具有图像处理工具产品使用证书。假如你已经具有图像处理工具箱产品,你就不需要任何证书。如果你没有图像处理工具箱产品,图像采集工具箱软件 R2008A或者更早版本仍然可以使用。如果你想使用R2008B版本或者更新发行版,并且你有一个通用的图像采集工具箱软件激活证书,你可以自由下

4、载图像图像处理工具箱。新的顾客要使用图像采集工具箱产品将需要购买两个产品。如果你有任何问题,请联系Mathworks客户服务。1.2 图像采集工具(GUI)图像采集工具的Version 3.0中,图像采集工具箱软件的能是可以使用的桌面应用程序。你可以直接连接你的硬件到图像采集工具箱并且能设置采集参数,同时能预览和采集图像数据。你能从图像采集工具中正确记录多种MATLAB的数据格式,并且能生成AVI文件。打开软件,从MATLAB里面选择Start > Toolboxes > Image Acquisition > Image Acquisition Tool。这个工具在桌面有丰

5、富的Help信息。当你在不同的用户界面窗口点击,相关的Help将出现在图像采集工具Help窗口中。大多数的用户指南描述了使用工具箱通过MATLAB命令行执行任务。学习如何使用桌面工具,请参阅使用图像采集工具的GUI。1.3 基本的图像采集步骤1.3.1 概述本章节通过一个简单的运动检测的应用程序举例说明创建一个图像采集应用程序所需的基本步骤。此应该程序通过对两个输入图像帧的逐个像素比较实现检测一个场景中运动物体。如果在此场景中没有运动的物体,每一帧像素值将保持不变。当有物体在图像中移动时,该应该程序显示已经改变的像素值。这个例子表明如何使用图像采集工具箱软件仅几行代码来创建一个图像采集工作应用

6、程序。注意:为了运行此例用的样本代码,你必须有一个图像采集设备连接到你的系统。这个设备可以试专业级的图像采集设备,例如视频采集系统,或者一个一般的Microsoft Windows图像采集设备,例如网络摄像头。此代码只需要修改小部分便可以用于多种类型的设备。使用图像采集工具箱软件采集图像数据,你必须执行如下几步:Step1:安装、配置你的图像采集设备Step2:检索信息,惟一地标识你的图像采集设备的图像采集工具箱的软件Step3:创建视频输入目标Step4:预览视频输出(可选)Step5:配置图像采集对象属性(可选)Step6:采集图像数据Step7:清除1.3.2 Step1:安装、配置你的

7、图像采集设备根据你的图像采集设备的安装说明,设置通常包括:l 在你的电脑上安装图像采集板卡l 安装该设备所需的驱动软件。驱动软件通常用销售商提供。l 连接摄像机到图像采集卡的连接器l 通过运行应用程序来预览视频输出检查摄像机是否正常工作一般的windows图像采集设备,例如网络摄像机和数字便携式摄像机,通常不需要安装视频采集卡。你可以通过USB或者FireWire端口直接连接这些设备到你的电脑。安装和配置完成你的图像采集硬件之后,在你的电脑桌面双击MATLAB图标启动MATLAB。你不需要执行任何特殊的MATLAB配置去执行图像采集。1.3.3 Step2:检索硬件信息在这一步,你将得到几条你

8、想访问的工具箱唯一识别的图像采集设备信息。当你创建一个图像采集对象的时候你将使用这些信息,具体描述见step3:创建视频输入对象。下表列出了这些信息,你可以使用imaqhwinfo函数查看每一条信息。设备信息描述适配器名称适配器是图像采集工具箱和设备驱动通信的软件。工具箱包括有某些厂商的图像采集设备和特定类型的图像采集设备适配器。查看Determining the Adaptor Name获取更多信息。设备ID设备ID是适配器分配的唯一的识别每个图像采集设备的数字,它可以用于通讯。查看Determining the Device ID 获取更多信息视频格式视频格式指定视频输出的图像分辨率(长和

9、高)和其他特征。图像采集设备通常提供多种视频格式。查看Determining the Supported Video Formats获得更多信息。注意:指定视频格式是可选的;工具箱使用一个支持的格式作为默认的格式。Determining the Adaptor Name在MATLAB命令行输入imaqhwinfo函数确定适配器名称,不用带任何参数。imaqhwinfoans = InstalledAdaptors: 'dcam' 'winvideo' MATLABVersion: '7.4 (R2007a)' ToolboxName: '

10、Image Acquisition Toolbox' ToolboxVersion: '2.1 (R2007a)'在imaqhwinfo所返回数据中,InstalledAdaptors成员列出了在你的电脑上所有可用的适配器。在此例中,imaqhwinfo在电脑上发现两个可用的适配器:'dcam' and 'winvideo'。你的电脑上的清单可以能只包含一个设备名称。选择准备访问你的图像采集设备的适配器名称。查看Determining the Device Adaptor Name获得更多信息。Determining the Device

11、 ID使用具体的适配器名称作为唯一参数,在MATLAB命令行输入imaqhwinfo,查看一个指定的图像采集设备的设备ID号。在返回数据中,DeviceIDs成员是一个单元阵列,其包含了所有可以通过具体适配器访问的所有设备ID。注意:在这个例子中使用DCAM适配器。你应该替代为你想使用的适配器的名称。info = imaqhwinfo('dcam')info = AdaptorDllName: 1x77 char AdaptorDllVersion: '2.1 (R2007a)' AdaptorName: 'dcam' DeviceIDs: 1

12、DeviceInfo: 1x1 structDetermining the Supported Video Formats确定视频采集设备支持那些视频格式,查看imaqhwinfo所返回的数据DeviceInfo成员。DeviceInfo成员是一个结构体数组,每一个结构体提供了一个指定设备的信息。你可以使用设备ID作为参考结构输入,或者你可以通过调用函数imaqhwinfo函数查看指定的设备信息,使用具体的适配器名称和设备ID作为函数参数。查看SupportedFormats字段设备信息结构,获得设备支持的视频格式列表。SupportedFormats字段是一个单位阵列的字符串数组,其中每个字

13、符串的名称是设备的支持一种视频格式。有关更多信息,请参见确定支持的视频格式。dev_info = imaqhwinfo('dcam',1)dev_info = DefaultFormat: 'F7_Y8_1024x768' DeviceFileSupported: 0 DeviceName: 'XCD-X700 1.05' DeviceID: 1 ObjectConstructor: 'videoinput('dcam', 1)' SupportedFormats: 'F7_Y8_1024x768'

14、 'Y8_1024x768'1.3.4 Step 3: Create a Video Input Object在这一步中你可以创建一个视频输入对象,工具箱使用的该对象代表在MATLAB和图像采集设备之间的一个连接。使用视频输入对象的属性,你可以控制视频采集过程的许多属性。查看硬件连接获取更多图像采集对象属性。在MATLAB命令窗口输入vidoinput函数可创建视频输入对象。由imaqhwinfo函数返回的DeviceInfo结构体包含了默认的videoinput函数语法,在设备的ObjectConstructor字段。查看Determining the Supported V

15、ideo Formats获得更多设备结构体信息。下面的例子为DCAM适配器创建一个视频输入对象。替换为你的系统中可以使用的图像采集设备适配器名称。vid = videoinput('dcam',1,'Y8_1024x768')videoinput函数有三个参数:适配器名称,设备ID,视频格式。你可以在第二步中获得这些信息。适配器名称是唯一必须的参数,videoinput函数可以使用默认的设备ID和视频格式。查看在设备结构信息中的DefaultFormat字段确定默认的视频格式。查看Determining the Supported Video Formats获得

16、更多信息。你可以选择指定的设备配置文件名称代替具体的视频格式,也称为摄像机文件。设备配置文件通常用视频采集系统销售商提供。这些文件包括所有的所需的配置设置使用一个特定的摄像机与设备。请参阅使用设备配置文件(相机文件的更多信息。Viewing the Video Input Object Summary在MATLAB命令提示符输入变量的名字(vid) ,查看您刚刚创建的视频输入对象扼要。摘要信息显示对象的许多特征,如将每次触发被捕获的帧数,触发类型,和当前对象的状态。您可以使用视频输入对象属性来控制许多这样的特点。参见步骤5:配置对象的属性(可选)获得更多信息。vidSummary of Vid

17、eo Input Object Using 'XCD-X700 1.05'. Acquisition Source(s): input1 is available. Acquisition Parameters: 'input1' is the current selected source. 10 frames per trigger using the selected source. 'Y8_1024x768' video data to be logged upon START. Grabbing first of every 1 fra

18、me(s). Log data to 'memory' on trigger.Trigger Parameters: 1 'immediate' trigger(s) on START. Status: Waiting for START. 0 frames acquired since starting. 0 frames available for GETDATA.1.3.5 Step 4: Preview the Video Stream (Optional)在你创建视频输入对象之后,MATLAB可以访问视频采集设备并且准备好采集数据。但是,在这之前,你可

19、能希望查看视频预览,以确保图像是否令你满意。例如,你可能想要改变摄像机的位置,改变亮度,调节焦距或者进行一些图像采集的设置。注意:这一步在步骤的这一点上是可以选的,因为你可以在创建一个视频输入对象之后的任何时间预览输入的视频。preview(vid)preview函数在你的显示屏上打开一个视频预览图形窗口包含直播视频。调用stoppreview函数你可以停止视频直播。再次对相同的视频输入对象调用preview函数可以重新启动视频输入预览。当打开一个预览窗口,视频输入对象设置Previewing属性值为on。如果你通过设置图像采集对象属性改变图像的特征,图像显示在预览窗口中反映这一变化。下图是显

20、示视频预览窗口的例子。Video Preview Window点击在标题栏的Close按钮或者使用closepreview函数关闭视频预览窗口,以指定的视频输入对象作为参数。closepreview(vid)调用closepreview函数不带任何参数可关闭所有打开的视频预览窗口。1.3.6 Step 5: Configure Object Properties (Optional)在你创建视频输入对象和预览视频输入之后,你可能想修改图像的属性或者采集程序的其他方面。你可以通过设置图像采集对象属性完成这些操作。本节包括:l 用工具箱描述图像采集对象的类型l 描述怎样查看这些对象所支持的所有属性

21、,用他们的当前值l 描述怎样设置对象的属性值Types of Image Acquisition Objects工具箱使用两种类型的对象表示与图像采集设备的连接:l 视频输入对象l 视频源对象视频输入对象表示MATLAB与视频采集设备之间顶层连接。这些属性在所支持每种设备的视频输入对象是相同的。你使用step3的videoinput函数创建一个视频输入对象。当你创建一个视频输入对象,工具箱将自动创建一个或多个与视频输入对象相关的视频源对象。每个视频源对象表示一个或多个物理数据源,这些数据源被当做一个整体。视频源对象的数量工具箱创建取决于指定设备和视频格式。在任何时间,只有其中一个视频源对象,称

22、为选择的源,可以是活动的。这是源用于采集。更多的信息图像采集对象,请参阅创建图像采集对象。Viewing Object Properties使用get函数查看支持的视频输入和视频源的所有属性的列表。在MATLAB命令行输入下列代码可以列出在step3中创建的视频输入对象的属性。get(vid)get函数列出了该对象的所有属性的当前值。General Settings: DeviceID = 1 DiskLogger = DiskLoggerFrameCount = 0 EventLog = 1x0 struct FrameGrabInterval = 1 FramesAcquired = 0

23、FramesAvailable = 0 FramesPerTrigger = 10 Logging = off LoggingMode = memory Name = Y8_1024x768-dcam-1 NumberOfBands = 1 Previewing = on ReturnedColorSpace = grayscale ROIPosition = 0 0 1024 768 Running = off Tag = Timeout = 10 Type = videoinput UserData = VideoFormat = Y8_1024x768 VideoResolution =

24、 1024 768 . . .使用getselectedsource函数结合get函数,查看当前被选中的视频源对象与这个视频输入对象相关的属性。Getselectedsource函数返回当前活动的视频源。在MATLAB命令窗口输入下面代码,列出在step3中创建的相关的视频输入对象的当前选中的视频源的属性。get(getselectedsource(vid)get函数列出对象的所有属性的当前值。General Settings: Parent = 1x1 videoinput Selected = on SourceName = input1 Tag = Type = videosource

25、Device Specific Properties: FrameRate = 15 Gain = 2048 Shutter = 2715Setting Object Properties你可以使用set函数或者你可以用一个点引用对象属性作为结构体的一个成员,设置视频输入对象的属性或者视频源对象属性的值。有些属性是只读的;你不能设置这些值。这些属性通常提供对象的状态信息。其他变成只读属性是因为该对象正在运行。指定对象的唯一参数,使用set函数可以查看一系列你可以设置的所有属性。为了实现图像的连续采集,本例设置TriggerRepeat属性为Inf。在MATLAB命令窗口输入下列代码,使用set

26、函数设置此属性。set(vid,'TriggerRepeat',Inf);为了有助于应用程序处理数据能跟上输入的视频,本例设置FrameGrabInterval属性值为5.这个设置指定对象获得每5帧的视频数据流。vid.FrameGrabInterval = 5; 为了设置视频源对象的属性,你必须首先使用getselectedsource函数搜索对象。为了说明,该示例为Tag属性设置一个值。vid_src = getselectedsource(vid);set(vid_src,'Tag','motion detection setup');1.

27、3.7 Step 6: Acquire Image Data在你创建视频输入对象并且配置好属性之后,你可以获取数据。这是图像采集应用程序的核心,通常包含如下步骤:启动视频输入对象-调用start函数启动对象。启动一个对象准备数据采集对象。例如,启动一个对象锁定某些对象属性值(他们变成只读)。然后,启动一个对象不开始采集图像帧。数据的初始化记录取决于触发器的执行。下例中调用start函数启动视频输入对象。当采集所需数量的图像帧之后对象停止。因为示例指定了连续采集,所以你必须调用stop函数停止对象。触发采集-视频输入必须执行一个触发才能采集数据。触发器可以以几种方式产生,取决于TriggerTy

28、pe属性如何配置。例如,假如你指定为立即触发,对象在启动后立即的自动执行触发器。如果你指定为手动触发,对象在开始采集数据之前一直等待调用trigger函数在本例中,由于TriggerType属性设置为'immediate' (默认),TriggerRepeat 属性设置为Inf,对象自动执行触发器,连续的采集数据帧。数据输入到MATLAB工作空间-工具箱储存数据在内存缓冲区,磁盘文件或者两者中,取决于视频输入对象的LoggingMode属性。你可以把数据输入到MATLAB工作空间使用这些数据。可以用getdata函数讲多帧数据输入到工作空间。数据一旦输入到工作空间,你可以像其他

29、数据一样处理它。运行示例在MATLAB命令窗口输入如下代码运行示例。示例将一直循环到指定的帧数量获取够之后。在每个循环中,调用getdata函数输入两个最新的帧数据到MATLAB工作空间。本例用一个帧减去另一个帧,创建一个差分图像检测运动目标,并且显示差分图像。在采集到的帧的变化的像素值将在差分图像中为非0值。Getdeta函数将从内存缓冲区中删除帧数据并将其输入到MATLAB工作空间。实时的将帧数据从内存缓冲区移动到MATLAB工作空间是非常重要的。如果你不从内存中移动采集到的帧,你讲很快耗尽你系统的内存。% Create video input object. vid = videoinp

30、ut('dcam',1,'Y8_1024x768')% Set video input object properties for this application.% Note that example uses both SET method and dot notation method.set(vid,'TriggerRepeat',Inf);vid.FrameGrabInterval = 5;% Set value of a video source object property.vid_src = getselectedsource

31、(vid);set(vid_src,'Tag','motion detection setup');% Create a figure window.figure; % Start acquiring frames.start(vid)% Calculate difference image and display it.while(vid.FramesAcquired<=100) % Stop after 100 frames data = getdata(vid,2); diff_im = imabsdiff(data(:,:,:,1),data(:,

32、:,:,2); imshow(diff_im);endstop(vid)下图显示本例如何显示运动检测。图中,那些区域显示代表着在移动的物体。Image Data in the MATLAB Workspace本例中,getdata函数返回图像帧,变量data是一个480x640x1x10的数据,数据类型为8位。whos Name Size Bytes Class data 4-D 3072000 uint8 array dev_info 1x1 1601 struct array info 1x1 2467 struct array vid 1x1 1138 videoinput object

33、 vid_src 1x1 726 videosource object1.3.8 Step 7: Clean Up当你用完你的图像采集对象,你要从内存和MATLAB工作空间中清除这些对象有关的变量值。delete(vid)clearclose(gcf)For more information, see Deleting Image Acquisition Objects.2 用户手册2.1 引言2.1.1 工具箱组成预览引言你能将图像采集工具箱从照相机和图像采集卡采集的图像或者视频直接输入到MATLAB和Simulink。可以自动检测硬件和配置硬件属性。2.1.2 设置图像采集硬件引言采集图像

34、数据,你必须先完成你指定的图像采集设备的配置。图像采集设备,例如照相机,常用设置是通过图像采集卡连接到计算机,例如图像采集卡,或者通过USV或者IEEE1394(FireWire)端口。安装步骤随着设备类型而定。在安装和配置好图像采集硬件后,双击桌面的MATLAB图标启动MATLAB。采集图像不需要执行任何特殊MATLAB配置。设置帧捕获器帧捕获器和图像采集卡一样,设置通常包括以下几步:l 在你的电脑上安装图像采集板卡l 安装该设备所需的驱动软件。驱动软件通常用销售商提供。l 连接摄像机或者图像采集设备到图像采集卡的连接器l 通过运行图像采集卡的应用程序来预览视频输出,检查摄像机是否正常工作设

35、置通用的Windows视频采集设备IEEE1394(FireWire)和通用的Windows视频采集设备使用Windows驱动模块(WDM)或者Windows视频设备驱动(VFW),通常不需要安装。将设备插入计算机的USB或者IEEE1394端口,并安装有销售商提供的驱动。安装DCAM设备。重启图像采集硬件图像采集对象不存在和硬件没有配置的时候,使用imaqreset函数,使MATLAB和图像采集硬件为已知状态。在你连接另一个图像采集设备到电脑的时候,你可以使用imaqreset函数让工具箱找到新硬件。帧率和处理速度的笔记帧率描述了图像采集设备提供数据的快慢,通常测量每秒多少帧。设备支持工业标

36、准的视频格式必须提供指定的标准的帧率。对于RS170和NTSC,标准规定每秒30帧的(30 Hz)。这个CCIR和PAL帧率的标准定义了一种25Hz。非标准设备可以被配置为运行在更高的利率。通用的窗口图像采集设备,例如网络摄像头,可以支持许多不同的帧速率。根据所使用的设备,该帧率可能会使用一个特定于设备的可配置特性的图像采集对象。图像采集工具箱软件能够处理图像的速率取决于处理器速度、处理算法的复杂性,和帧速率。给定一个快速处理器,一个简单的算法,和一个帧率调到采集的设置中,图像采集工具箱软件实时处理数据。2.1.3 预览数据引言在你连接图像采集设备到MATLAB之后,你可以使用视频预览窗口查看

37、直播视频输入。预览视频数据能有利于你确认采集到的图像是否满意。例如,通过才看预览,你可以修改光线焦距到合适值。如果你通过视频视频输入对象和视频输入源的属性修改图像属性,显示在视频预览窗口图像将反应出新的属性设置。下列章节将提供更多关于使用视频预览窗口的信息。l 打开一个视频预览窗口l 暂停视频预览输入l 关闭视频预览窗口你可以再在任何你指定的处理图像图像的对象中显示视频直播流,而不使用工具箱的视频预览窗口。通过这种方式,你自己创建的GUI中预览视频。下列章节将讲解此功能。l 在定制的GUI中预览数据l 执行自定义处理数据的预览打开一个预览窗口vid = videoinput('winv

38、ideo');preview(vid);暂停预览视频流vid = videoinput('winvideo');preview(vid)stoppreview(vid)关闭视频预览窗口closepreview(vid)在用户自定义的GUI中预览数据你可以用preview函数直接的播放视频流到任何一个处理图形图像对象中,而不用工具箱的视频预览窗口。通过这种方式,你能在你自己创建的GUI中拥有工具箱的预览能力。To use this capability, create an image object and then call the preview function, specifying a handle to the image object as an argument. The preview function outputs the live v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论