MATLAB图像采集.doc_第1页
MATLAB图像采集.doc_第2页
MATLAB图像采集.doc_第3页
MATLAB图像采集.doc_第4页
MATLAB图像采集.doc_第5页
全文预览已结束

下载本文档

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

文档简介

进行的步骤如下:1. 安装并配置图像采集设备2. 获取在图像采集工具箱中能唯一标识此图像采集设备的信息,此信息在创建视频输入对象时要用到。这些信息包括:Adaptor name软件适配器名,Device ID硬件设备的ID,Video format视频格式。imaqhwinfo用于检测适配器名,我的电脑安装了一个USB摄像头,所以检测到一个安装了的适配器winvideo。之后可以使用这个适配器名连接视频采集设备。 复制内容到剪贴板代码:imaqhwinfoans = InstalledAdaptors: winvideo MATLABVersion: 7.0 (R14) ToolboxName: Image Acquisition Toolbox ToolboxVersion: 1.5 (R14)要查看特定设备的设备ID,可使用如下命令: 复制内容到剪贴板代码:info = imaqhwinfo(winvideo)info = AdaptorDllName: D:MATLAB7toolboximaqimaqadaptorswin32mwwinvideoimaq.dll AdaptorDllVersion: 1.5 (R14) AdaptorName: winvideo DeviceIDs: 12 DeviceInfo: 1x2 struct在上面的DeviceIDs可以看到两个数组,每一个代表一个设备,我的摄像头设备为:USB 视频设备 #2,这里可能就对应着2,【对应的是1,哈哈】。要继续获得更多有关设备的信息可以如下进行: 复制内容到剪贴板代码:dev_info = imaqhwinfo(winvideo, 1)复制内容到剪贴板代码:dev_info2 = imaqhwinfo(winvideo, 2)我的电脑返回信息如下:dev_info = DefaultFormat: YUY2_640x480 DeviceFileSupported: 0 DeviceName: USB 视频设备 DeviceID: 1 ObjectConstructor: videoinput(winvideo, 1) SupportedFormats: YUY2_640x480YUY2_352x288YUY2_320x240YUY2_176x144YUY2_160x120(这个应该是我的战车摄像头)dev_info2 = DefaultFormat: RGB24_640x480 DeviceFileSupported: 0 DeviceName: Vimisoft Camera DeviceID: 2 ObjectConstructor: videoinput(winvideo, 2) SupportedFormats: 1x9 cell(这个应该是软件的什么东西?)3. 创建视频输入对象使用videoinput函数创建视频输入对象,此函数使用上步得到的适配器名、设备ID和设定的视频格式创建对象。这里只需要适配器名,videoinput函数使用默认的设备ID和视频格式。 复制内容到剪贴板代码:vid = videoinput(winvideo)Summary of Video Input Object Using USB 视频设备. Acquisition Source(s):input1 is available.Acquisition Parameters:input1 is the current selected source. 10 frames per trigger using the selected source. YUY2_640x480 video data to be logged upon START. Grabbing first of every 1 frame(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.4. 预览视频流为了是视频符合你的要求,你可以先进行预览,然后根据需要调节摄像设备的位置、光照、对焦或其他调整。 复制内容到剪贴板代码:preview(vid)这时将弹出视频预览窗口,里面是实时监控图像。 复制内容到剪贴板代码:closepreview(vid)命令可以关闭预览窗口。5. 配置视频对象的属性一、图像采集对象的类型工具箱使用两种类型对象来表示与视频设备的连接:Video input objects 视频输入对象Video source objects 视频源对象Video input objects是Matlab与视频设备在高层次的连接,这一层次抽象了各个设备的差异,提供相同的属性支撑。使用videoinput创建此类对象。当创建一个视频输入对象时,工具箱自动创建一个或多个Video source objects视频源对象与之关联。每个视频源对象代表一个或多个作为一个单独整体看待的物理数据源的集合。源对象的数量依赖于视频设备和设定的视频格式。同一时刻,只有一个视频源被激活用来获取数据。二、查看对象属性使用get函数查看视频输入对象的属性,如 复制内容到剪贴板代码:get(vid)我的电脑输出结果如下:General Settings: DeviceID = 1 DiskLogger = DiskLoggerFrameCount = 0 EventLog = 1x0 struct FrameGrabInterval = 1 FramesAcquired = 0 FramesAvailable = 0 FramesPerTrigger = 10 Logging = off LoggingMode = memory NumberOfBands = 3 Previewing = off ReturnedColorSpace = YCbCr ROIPosition = 0 0 640 480 Running = off Tag = Timeout = 10 Type = videoinput UserData = VideoFormat = YUY2_640x480 VideoResolution = 640 480Callback Function Settings: ErrorFcn = imaqcallback FramesAcquiredFcn = FramesAcquiredFcnCount = 0 StartFcn = StopFcn = TimerFcn = TimerPeriod = 1 TriggerFcn = Trigger Settings: InitialTriggerTime = TriggerCondition = none TriggerFrameDelay = 0 TriggerRepeat = 0 TriggersExecuted = 0 TriggerSource = none TriggerType = immediateAcquisition Sources: SelectedSourceName = input1 Source = 1x1 videosource查看当前输入对象的源对象信息: 复制内容到剪贴板代码:get(getselectedsource(vid)General Settings: Parent = 1x1 videoinput Selected = on SourceName = input1 Tag = Type = videosourceDevice Specific Properties: BacklightCompensation = on Brightness = 0 Contrast = 11 Exposure = -6 ExposureMode = auto FrameRate = 30.0000 Gain = 34 Gamma = 150 Saturation = 4 Sharpness = 3 WhiteBalance = 6500 WhiteBalanceMode = auto三、设置对象属性设置方式如下代码: 复制内容到剪贴板代码:% 设置输入对象属性方式set(vid,TriggerRepeat,Inf);vid.FrameGrabInterval = 5;% 设置源对象属性方式vid_src = getselectedsource(vid);set(vid_src,Tag,motion detection setup);6. 获取图像数据获取了视频输入对象后就可以获取数据了。这是任何图像采集应用的核心,他包含以下步骤:启动视频输入对象使用start函数启动对象,为采集图像做准备。在下面的例子中,start启动视频输入对象,对象在采集到所需数量的帧后停止。因为例中指定了连续采集,你必须使用stop函数来停止对象。触发采集根据指定的触发类型,视频输入对象执行触发采集。例如,如果你设定了即时触发器,对象将在初始化采集后立即自动进行采集。本例中,TriggerType设为了immediate(默认),并且TriggerRepeat设为无穷,因此,输入对象自动开始执行触发器,并进行数据帧连续采集。获取数据到matlab工作区工具箱在内存缓冲或磁盘文件或二者存储数据,这由对象的LoggingMode决定。要使用数据,必须先读入到matlab的工作空间中,使用getdata函数。 复制内容到剪贴板代码:figure; % Ensure smooth displayset(gcf,doublebuffer,on); % 用于是图像平滑start(vid) % 启动对像while(vid.FramesAcquired=100) data = getdata(vid,2);% 获取两帧图像数据 diff_im = imabsdiff(data(:,:,:,1),data(:,:,:,2); % 两帧相减 imshow(diff_im);endstop(vid)运动检测例,结果图如下:7. 清除工作 复制内容到剪贴板代码:delete(vid)clearclose(gcf)获取图像数据步骤Step 1: Install and configure your image acquisition deviceStep 2: Retrieve information that uniquely identifies your imageacquisition device to the Image Acquisition Toolbox softwareStep 3: Create a video input objectStep 4: Preview the video stream (Optional)Step 5: Configure image acquisition object properties (Optional)Step 6: Acquire image dataStep 7: Clean upStep1:Installing the frame grabber board in your computer. Installing any software drivers required by the device. These are suppliedby the device vendor. Connecting a camera to a connector on the frame grabber board. Verifying that the camera is working properly by running the applicationsoftware that came with the camera and viewing a live video stream.Generic Windows image acquisition devices, such as webcams and digitalvideo camcorders, typically do not require the installation of a frame grabberboard. You connect these devices direct

温馨提示

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

评论

0/150

提交评论