(1)Matlab环境下使用USB2.0摄像头编程

Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了,主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程。

TAG: 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

查询USB2.0Camera的具体参数

给我们一个摄像头我们必须知道他的相关参数,才可能进行我们的编程下。当然我们可以查询商家手册,但是那个累不累人呀。

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'%适配器名称

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 PCCAMERA P227'.

Acquisition Source(s):  input1 isavailable.

Acquisition Parameters:  'input1'is the current selected source.

10 frames pertrigger using the selected source.

'RGB24_320x240'video data to be logged upon START.

Grabbing first ofevery 1 frame(s).

Log data to 'memory'on trigger.

Trigger Parameters:  1 'immediate'trigger(s) on START.

Status:  Waiting for START.

0 frames acquiredsince starting.

0 frames availablefor 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');

(2)

Matlab摄像头数据采集

www.diybl.com    时间 : 2010-07-10  作者:网络   编辑:huyang629点击:  24 [ 评论 ]

1、  查询USB2.0Camera 的具体参数

输入 imaqInfo = imaqhwinfo

返回信息

InstalledAdaptors: {'winvideo'}

MATLABVersion: '7.1 (R14SP3)'

ToolboxName: 'Image Acquisition Toolbox'

ToolboxVersion: '1.9 (R14SP3)'

输入imaqInfo.InstalledAdaptors

返回信息

ans =

'winvideo'

输入winvideoinfo = imaqhwinfo('winvideo')

返回信息

winvideoinfo =

AdaptorDllName: [1x76 char]

AdaptorDllVersion: '1.9 (R14SP3)'

AdaptorName: 'winvideo'

DeviceIDs: {[1]}

DeviceInfo: [1x1 struct]

输入 winvideoinfo.DeviceInfo

返回信息

ans =

DefaultFormat: 'YUY2_160x120'

DeviceFileSupported: 0

DeviceName: 'USB 视频设备'

DeviceID: 1

ObjectConstructor: 'videoinput('winvideo', 1)'

SupportedFormats: {1x5 cell}

输入device1 = winvideoinfo.DeviceInfo(1)

返回信息

device1 =

DefaultFormat: 'YUY2_160x120'

DeviceFileSupported: 0

DeviceName: 'USB 视频设备'

DeviceID: 1

ObjectConstructor: 'videoinput('winvideo', 1)'

SupportedFormats: {1x5 cell}

输入device1.DeviceName

返回信息

ans =

USB 视频设备

输入device1.DeviceID

返回信息

ans =

1

输入device1.DefaultFormat

返回信息

ans =

YUY2_160x120

输入device1.SupportedFormats

返回信息

Columns 1 through 4

'YUY2_160x120'    'YUY2_176x144'    'YUY2_320x240'    'YUY2_352x288'

Column 5

'YUY2_640x480'

2、  最简单采集实验,输入如下代码,可以得到预览下的默认格式的摄像头捕捉窗口

obj=videoinput('winvideo',1);

preview(obj);

3、  输入如下代码

% Access an image acquisition device.

vidobj = videoinput('winvideo',1,'YUY2_640x480');

sources = vidobj.Source;

whos sources

set(vidobj,'SelectedSourceName','input1');

sources

selectedsrc = getselectedsource(vidobj);

get(selectedsrc);

delete(vidobj);

clear vidobj;

返回信息

Name          Size                    Bytes  Class

sources       1x1                       726  videosource object

Grand total is 30 elements using 726 bytes

Display Summary for Video Source Object:

Index:   SourceName:   Selected:

1        'input1'      'on'

General Settings:

Parent = [1x1 videoinput]

Selected = on

SourceName = input1

Tag =

Type = videosource

Device Specific Properties:

BacklightCompensation = on

Brightness = -16

Contrast = 120

FrameRate = 30.0000

Gamma = 60

Hue = 0

Saturation = 40

Sharpness = 3

4、  输入如下代码

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);

matlab usb cam,Matlab环境下使用USB2.0摄像头编程image acquisition tools(读书笔记) | 学步园...相关推荐

  1. win7能用的matlab,win7环境下使用matlab7.0(R14)方法

    matlab7.0是一款非常强大的工程仿真分析软件,虽说是2004年的版本,但易用性和稳定性仍然不错,所以此版本仍然在各大单位服役.下面是学习啦小编跟大家分享的是win7环境下使用matlab7.0( ...

  2. mysql8.0卸载出现问题,Windows环境下MySQL 8.0 的安装、配置与卸载

    软件版本 Windows:Windows10 MySQL:mysql-8.0.17-winx64.zip 安装步骤 1.配置环境变量 2.新建my.ini文件 文件位置:C:\Program File ...

  3. centos php支持yaf,CentOS环境下给PHP7.0安装yaf扩展

    | CentOS环境下给PHP7.0安装yaf扩展 在CentOS环境下给PHP7.0安装yaf扩展,首先要知道PHP的安装目录在哪里,以我当前的路径为例,在/usr/local/php目录下. 下一 ...

  4. 安装mysql8.0配置环境_Windows环境下MySQL 8.0 的安装、配置与卸载

    软件版本 Windows:Windows10 MySQL:mysql-8.0.17-winx64.zip 安装步骤 1.配置环境变量 name:Path value:C:\Program Files\ ...

  5. apache2配置支持php7,Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法

    这篇文章主要介绍了Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法,较为详细的分析了Ubuntu14.04操作系统环境下配置PHP7.0+Apache2+My ...

  6. linux websphere 端口号,Linux环境下配置websphere7.0的一些命令

    Linux环境下配置websphere7.0的一些命令! 1.创建概要文件 通过命令行建立Dmgr服务器,进入${WAS_Home}/bin目录,运行 ./manageprofiles.sh -cre ...

  7. window10环境下tensorflow-gpu-2.7.0安装

    window10环境下tensorflow-gpu-2.7.0安装:cuda11.1 + cudnn8.1.1 + pycharm2020.3.5 + anaconda2021.11 pycharm2 ...

  8. 计算机技术应用读书心得,《多媒体环境下的教学设计和资源的应用》读书心得体会...

    <多媒体环境下的教学设计和资源的应用>读书心得体会 五天的培训很快就结束了.在五天的培训中,我们认识了信息学校的老师们,为他们认真的工作态度.高涨的工作热情所打动,最关键的是我们从中学到了 ...

  9. ubuntu 14.04 apache php mysql_Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法

    本文实例讲述了Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法.分享给大家供大家参考,具体如下: 这里为Ubuntu14.04系统下配置PHP7.0+Apac ...

最新文章

  1. 基于lvs(DR模式)的keepalived部署
  2. office高级应用与python综合案例教程_office高级应用与python综合案例实验指导--详细介绍...
  3. 【常见Web应用安全问题】---1、Cross Site Scripting
  4. Python递归打印函数
  5. mac安装gnu make_Linux Make的使用以及命令安装详解
  6. HDU1256 画8【打印图案】
  7. 2063【例1.4】牛吃牧草-c++语言入门
  8. 从host端对Windows虚机进行内存dump和分析
  9. 【线性代数】P1 行列式基本概念
  10. VMware Fusion 12.2.1 SLIC 2.6 MOD
  11. 抖音低俗内容被处罚:账号重新评估,投稿不推荐该怎么办丨国仁网络
  12. PTA 数组 7-5 按字母顺序排列出场国家名称
  13. 凸显以专业课程体系为核心进行职业院校实训基地建设
  14. SpringBoot-多模块打包与问题排解
  15. Git版本控制+ SourceTree+AndroidStudio 忽略文件
  16. 2023年美国最佳本科商学院和最佳在线本科商学院榜单排名公布 | 美通社头条
  17. 致我成为社畜的第一年
  18. 【140811】泡泡堂游戏单机版完整源码(ASL引擎)
  19. 1.pytorch 学习笔记--Getting stared
  20. 【情感识别】SVM语音情感识别(带面板)【含GUI Matlab源码 876期】

热门文章

  1. Matlab绘图--包含各种标示符的输入方法
  2. python爬虫运行不出结果_请问这个为什么就是爬不到,运行之后电脑卡的不行,求大佬指导...
  3. Tecplot中如何提取水线面(自由表面)并绘图
  4. php 405,options跨域请求405
  5. tidb vs mysql_一个长耗时SQL在TiDB和Mysql上的耗时测试
  6. Scrum之 回顾会议
  7. 8个树莓派超级计算机_6 个可以尝试的树莓派教程
  8. 【转】C#实现SM2国密加密
  9. 第二节 CSS入门介绍
  10. 一步步编写操作系统 46 用c语言编写内核3