MATLAB调用摄像头.doc_第1页
MATLAB调用摄像头.doc_第2页
MATLAB调用摄像头.doc_第3页
MATLAB调用摄像头.doc_第4页
MATLAB调用摄像头.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB进行USB2.0摄像头的编程(引用)Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。整个过程我们需要做如下几件事情:1、查询USB2.0Camera 的具体参数(imaqhwinfo)2、创建视频输入对象(videoinput)3、图像预览和显示(preview、stoppreview、closepreview和image)4、获取视频图像(getsnapshot)5、图像获取设备的获取和设置(get和set)6、关闭视频对象(delete)在正式讲解之前,我想说明下几个个在图像获取工具箱中的术语:图像获取设备:比如摄像头、扫描仪图像获取适配器:主要的目的是通过驱动在Matlab和图像获取设备之间传递信息ROI:region-of-interest 感兴趣区域在说说几个常用的函数,我们这里只是说明它的作用,具体如何使用参考帮助系统getselectedsourceimaqfindisvalidpeekdatagetdataimaqmontage给我们一个摄像头我们必须知道他的相关参数,才可能进行我们的编程下。当然我们可以查询商家手册,但是那个累不累人呀。Matlab的图像获取工具箱为我提供了imaqhwinfo(),来获取PC上以安装的图像获取硬件信息没有输入参数时,返回一个结构体, 它包含了系统中存在的适配器和Matlab相关的版本信息(第一次我们一般使用这个)代码: info=imaqhwinfoinfo = InstalledAdaptors: coreco winvideo%这里可以看到我的PC上安装了两个适配器 MATLABVersion: 7.6 (R2008a) ToolboxName: Image Acquisition Toolbox ToolboxVersion: 3.1 (R2008a)有输入参数的时候,返回一个结构体,包含了指定的适配器的数据信息代码: win_info=imaqhwinfo(winvideo)%我们看看第二适配器的具体参数win_info = AdaptorDllName: 1x81 char%适配器dll文件绝对路径 AdaptorDllVersion: 3.1 (R2008a)%适配器dll文件版本 AdaptorName: winvideo%s适配器名称 DeviceIDs: 1%设备ID号,这个我们经常需要用到 DeviceInfo: 1x1 struct%设备信息,这里主要是图像获取设备的一些参数,比较重要%=下面我们了解下,这个图像获取设备到底有哪些的详细信息吧= win_info.DeviceIDsans = 1 dev_win_info=win_info.DeviceInfodev_win_info = DefaultFormat: RGB24_320x240%获取图片的默认格式 DeviceFileSupported: 0 DeviceName: USB PC CAMERA P227%设备名称 DeviceID: 1%设备号 ObjectConstructor: videoinput(winvideo, 1)%对象构建方式,这个绝大部分都是一样的 SupportedFormats: 1x12 cell%获取的图像支持格式,一般都有好多种,上面的DefaultFormat只是默认格式而已%=看看图像获取设备支持的图像格式= dev_win_info.SupportedFormats%可以看到我的PC上的摄像头支持下面12中图片格式ans =Columns 1 through 5 I420_160x120 I420_176x144 I420_320x240 I420_352x288 I420_640x480Columns 6 through 9 RGB24_1280x960 RGB24_160x120 RGB24_176x144 RGB24_320x240Columns 10 through 12 RGB24_352x288 RGB24_640x480 RGB24_800x600视频预览、采集和保存(1)创建视频输入对象obj = videoinput(adaptorname,deviceID,format)adaptorname:适配器名称,首次可以使用不带参数的imaqhwinfo函数获取deviceID:设备ID号,首次可以通过imaqhwinfo函数获取format:视频采集格式,可以通过DeviceInfo的SupportedFormats获取,不填写则使用默认格式代码: obj = videoinput(winvideo,1,RGB24_320x240)%这里我们使用默认的视频采集格式Summary of Video Input Object Using USB PC CAMERA P227. Acquisition Source(s): input1 is available.Acquisition Parameters: input1 is the current selected source. 10 frames per trigger using the selected source. RGB24_320x240 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.(2)打开视频预览窗口himage=preview(obj,himage)obj:视频采集对象himage:视频预览窗口对应的句柄,也就是说在指定的句柄对象中预览视频,该参数可以空缺至于预览窗口的关闭和停止可以使用colsepreview和stoppreview函数代码:vidRes = get(obj, VideoResolution); nBands = get(obj, NumberOfBands); figure()%指定预览窗体显示的figureaxes()%指定预览窗口显示的坐标系hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(obj, hImage);(3)图像捕捉、显示和保存代码:%frame是HWB的矩阵。H图像高度,由ROIPosition指定;w图像宽度,由ROIPosition指定;B索线个数,由NumberOfBands指定frame = getsnapshot(obj);imshow(frame);imwrite(fame,snap.jpg,jpg);实验步骤1、 查询USB2.0Camera 的具体参数输入 imaqInfo = imaqhwinfo返回信息InstalledAdaptors: winvideoMATLABVersion: 7.1 (R14SP3)ToolboxName: Image Acquisition ToolboxToolboxVersion: 1.9 (R14SP3)输入imaqInfo.InstalledAdaptors返回信息ans =winvideo输入winvideoinfo = imaqhwinfo(winvideo)返回信息winvideoinfo =AdaptorDllName: 1x76 charAdaptorDllVersion: 1.9 (R14SP3)AdaptorName: winvideoDeviceIDs: 1DeviceInfo: 1x1 struct输入 winvideoinfo.DeviceInfo返回信息ans =DefaultFormat: YUY2_160x120DeviceFileSupported: 0DeviceName: USB 视频设备DeviceID: 1ObjectConstructor: videoinput(winvideo, 1)SupportedFormats: 1x5 cell输入device1 = winvideoinfo.DeviceInfo(1)返回信息device1 =DefaultFormat: YUY2_160x120DeviceFileSupported: 0DeviceName: USB 视频设备DeviceID: 1ObjectConstructor: videoinput(winvideo, 1)SupportedFormats: 1x5 cell输入device1.DeviceName返回信息ans =USB 视频设备输入device1.DeviceID返回信息ans =1输入device1.DefaultFormat返回信息ans =YUY2_160x120输入device1.SupportedFormats返回信息Columns 1 through 4YUY2_160x120 YUY2_176x144 YUY2_320x240 YUY2_352x288Column 5YUY2_640x4802、 最简单采集实验,输入如下代码,可以得到预览下的默认格式的摄像头捕捉窗口obj=videoinput(winvideo,1);preview(obj);3、 输入如下代码vidobj = videoinput(winvideo,1,YUY2_640x480);sources = vidobj.Source;whos sourcesset(vidobj,SelectedSourceName,input1);sourcesselectedsrc = getselectedsource(vidobj);get(selectedsrc);delete(vidobj);clear vidobj;返回信息Name Size Bytes Classsources 1x1 726 videosource objectGrand total is 30 elements using 726 bytesDisplay Summary for Video Source Object:Index: SourceName: Selected:1 input1 onGeneral Settings:Parent = 1x1 videoinputSelected = onSourceName = input1Tag =Type = videosourceDevice Specific Properties:BacklightCompensation = onBrightness = -16Contrast = 120FrameRate = 30.0000Gamma = 60Hue = 0Saturation = 40Sharpness = 34、 输入如下代码clc;clf;clear all;imaqmem(30000000); %申请内存空间%ADAPTOR:MATLAB与视频设备之间的接口,主要的目的是传递信息vid = videoinput(winvideo, 1, YUY2_640x480);preview(vid);start(vid);h=figure(NumberTitle,off,Name,视频,. MenuBar,none,color,c,. Position, 0, 0, 1, 1, Visible, on); %新建窗口set(h,doublebuffer,on,outerposition,get(0,screensize);h1=axes(Position, 0.02, 0.1, 0.4, 0.8,Parent,h); %新建显示窗口hold on;axis off;while ishandle(h) %判断是否有效的图像对象句柄 a=getsnapshot (vid); % 捕获图像 flushdata(vid); %清除数据获取引擎的所有数据、置属性SamplesAvailable为0 imshow(a); %显示图像 drawnow; % 实时更新图像end;delete(vid);实验步骤1、 查询USB2.0Camera 的具体参数输入 imaqInfo = imaqhwinfo返回信息InstalledAdaptors: winvideoMATLABVersion: 7.1 (R14SP3)ToolboxName: Image Acquisition ToolboxToolboxVersion: 1.9 (R14SP3)输入imaqInfo.InstalledAdaptors返回信息ans =winvideo输入winvideoinfo = imaqhwinfo(winvideo)返回信息winvideoinfo =AdaptorDllName: 1x76 charAdaptorDllVersion: 1.9 (R14SP3)AdaptorName: winvideoDeviceIDs: 1DeviceInfo: 1x1 struct输入 winvideoinfo.DeviceInfo返回信息ans =DefaultFormat: YUY2_160x120DeviceFileSupported: 0DeviceName: USB 视频设备DeviceID: 1ObjectConstructor: videoinput(winvideo, 1)SupportedFormats: 1x5 cell输入device1 = winvideoinfo.DeviceInfo(1)返回信息device1 =DefaultFormat: YUY2_160x120DeviceFileSupported: 0DeviceName: USB 视频设备DeviceID: 1ObjectConstructor: videoinput(winvideo, 1)SupportedFormats: 1x5 cell输入device1.DeviceName返回信息ans =USB 视频设备输入device1.DeviceID返回信息ans =1输入device1.DefaultFormat返回信息ans =YUY2_160x120输入device1.SupportedFormats返回信息Columns 1 through 4YUY2_160x120 YUY2_176x144 YUY2_320x240 YUY2_352x288Column 5YUY2_640x4802、 最简单采集实验,输入如下代码,可以得到预览下的默认格式的摄像头捕捉窗口obj=videoinput(winvideo,1);preview(obj);3、 输入如下代码vidobj = videoinput(winvideo,1,YUY2_640x480);sources = vidobj.Source;whos sourcesset(vidobj,SelectedSourceName,input1);sourcesselectedsrc = getselectedsource(vidobj);get(selectedsrc);delete(vidobj);clear vidobj;返回信息Name Size Bytes Classsources 1x1 726 videosource objectGrand total is 30 elements using 726 bytesDisplay Summary for Video Source Object:Index: SourceName: Selected:1 input1 onGeneral Settings:Parent = 1x1 v

温馨提示

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

评论

0/150

提交评论