matlab usb采集,matlab中图像采集工具箱的应用

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 感兴趣区域 在说说几个常用的函数,我们这里只是说明它的作用,具体如何使用参考帮助系统 getselectedsource imaqfind isvalid peekdata getdata imaqmontage 给我们一个摄像头我们必须知道他的相关参数,才可能进行我们的编程下。当然我们可以查询商家手册,但是那个累不累人呀。 Matlab的图像获取工具箱为我提供了imaqhwinfo(),来获取PC上以安装的图像获取硬件信息 没有输入参数时,返回一个结构体, 它包含了系统中存在的适配器和Matlab相关的版本信息(第一次我们一般使用这个) 代码: >>  info=imaqhwinfo info =     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.DeviceIDs ans =     [1] >> dev_win_info=win_info.DeviceInfo dev_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_640x480'   Columns 6 through 9     'RGB24_1280x960'    'RGB24_160x120'    'RGB24_176x144'    'RGB24_320x240'   Columns 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()%指定预览窗体显示的figure axes()%指定预览窗口显示的坐标系 hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(obj, hImage); (3)图像捕捉、显示和保存 代码: %frame是H×W×B的矩阵。H图像高度,由ROIPosition指定;w图像宽度,由ROIPosition指定;B索线个数,由NumberOfBands指定 frame = getsnapshot(obj); imshow(frame); imwrite(frame,'snap.jpg','jpg');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值