matlab usb 摄像图像 保存打开
- 格式:doc
- 大小:56.50 KB
- 文档页数:5
matlab保存图⽚的⼏种⽅式最近在写毕业论⽂, 需要保存⼀些⾼分辨率的图⽚. 下⾯介绍⼏种MATLAB保存图⽚的⽅式.⼀. 直接使⽤MATLAB的保存按键来保存成各种格式的图⽚你可以选择保存成各种格式的图⽚, 实际上对于⼀般的图⽚要求⽽⾔, 该⽅法已经⾜够了.⼆. 使⽤saveas函数该函数实际上类似于 “另存为” 的选项,并且忽略图⽚的背景⼤⼩等等,按照默认的属性存储.⼀般格式为为saveas(fig, filename, formattype)clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')saveas(gcf, 'test', 'png')这的可选项有png, jpg, bmp等等, 以及⽮量图格式, eps, svg, pdf等等.三. 使⽤imwrite函数imwrite 实际上是保存⼀个描述图⽚的数组, 使⽤的⼀般格式为imwrite(A, filename)clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')f = getframe(gcf);imwrite(f.cdata, 'test.png'); 该函数可以⽤于保存为png, jpg, bmp等等格式, 但是不可以保存为eps, svg, pdf 等⽮量图格式.该函数还可以⽤于保存gif.clearclcn = 1:10;nImages = length(n);x = 0:0.01:1;im = cell{nImages, 1};figure;for idx = 1:nImagesy = sin(2*pi*x*idx);plot(x,y,'LineWidth',3)title(['y = sin(2n\pix), n = ' num2str(n(idx)) ])drawnowframe = getframe(gcf);im{idx} = frame.cdata;endclose;filename = 'test.gif';for idx = 1:nImages[A,map] = rgb2ind(im{idx},256);if idx == 1imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',1);elseimwrite(A,map,filename,'gif','WriteMode','append','DelayTime',1);endend四. 使⽤ printf 函数clearclcx = 0:0.01:2*pi;y = sin(x);plot(x, y)xlabel('x')ylabel('y')title('y = Sin(x)')printf(gcf,'-dpng','test.png') 。
Matlab摄像头基本操作分类:matlab(机器人视觉SLAM项目)2012-09-26 09:48529人阅读评论(0) 收藏举报matlabinputparametersimagevideopropertiesMatlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。
在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对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 AcquisitionToolbox'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: 0DeviceName: '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' 'I42 0_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 thecurrent 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()%指定预览窗体显示的figureaxes()%指定预览窗口显示的坐标系hImage = image( zeros(vidRes(2), vidRes(1),nBands) );preview(obj, hImage);(3)图像捕捉、显示和保存代码:%frame是H×W×B的矩阵。
Matlab保存图片的4种方法
1、在figure窗口中点击菜单“Edit”的下拉选项“Copy Figure”,图片就保存在剪贴板中,
打开word进行粘贴,图片就可以保存下来。
2、在Figure窗口中,点击菜单“File”的下拉项“save as”,就可以将文件保存为jpg等图
片格式。
3、点击Figure窗口的菜单“File”的下拉项“Export Setup”,在弹出的“Export Setup”对话
框中可以设置像素等,设置完后,选择“export”就可以将文件保存为jpg等图片格式。
4、直接采用saveas函数保存,函数的使用方法是
saveas(h,'filename.ext')
或者
saveas(h,'filename','format')
h是figure的句柄,比如Figure 2的句柄就是2。
filename是文件名,可以包含文件的路径,ext是文件的格式。
文件名和格式也可以按第二句的格式分开写。
句柄也可以用下列语句获取,
h=figure(n) % n是想要保存的figure的序号
下面是采用saveas保存图片的例子
例子1:
t=1:0.01:10;
y=exp(-1*t).*sin(3*t);
h=figure(2),plot(t,10*y)
saveas(h,'E:\fortest\test2.jpg')
例子2:保存当前figure
saveas(gcf,'E:\fortest\test.jpg')。
matlab保存图片的四种方法1 从菜单保存〈<回目录可以保存为fig,eps,jpeg,gif,png,bmp等格式。
2 复制粘贴 <<回目录edit-—-———〉copy figure,再粘贴到其他程序,如word3 saveas函数〈〈回目录saveas(gca,filename,fileformat)不过此函数不好用常常出错4 print函数〈<回目录〉〉 x=—pi:2*pi/300:pi;〉〉 y=sin(x);>〉 plot(x,y);〉> print(gcf,'-dpng','abc。
png')%保存为png格式的图片. 〉〉 pwdD:\Matlab\work>〉 dir〉〉 % 现在到 D:\Matlab\work 应该能找到图片 abc.png 了〉> figure(2) % 新建一个句柄为2的图形窗口。
〉〉 plot(x,cos(x)); % 在句柄为2的图形窗口上画图。
>> grid>> print(2,’—djpeg’,’D:\abc.jpeg’); %将句柄为2的图形保存为jpeg/jpg格式的图片,>> %文件名为'D:\abc。
jpeg’。
4。
2 用法:print(图形句柄,存储格式,文件名);〈<回目录图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄. 指定存储格式。
常用的有:png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)jpeg: ‚-djpeg‘(文件小,较清晰)tiff: ‚—dtiff‘bmp: ‚—dbitmap‘(清晰,文件极大)gif: ‚-dgif‘(文件小但不清晰)文件名在matlab中自动保存plot图像的程序Step 1. 先使所画的图最大化,即占满整个屏幕scrsz = get(0,’ScreenSize');figure1=figure('Position',[0 30 scrsz(3) scrsz(4)-95]);或者(下面这种情况会把windows系统下面的任务栏也保存到图片中,不太好)scrsz = get(0,’ScreenSize’);figure1=figure(’Position’,[0 0 scrsz(3) scrsz(4)-66]);% Step 2. 生成数据并画图x=rand(100,1);plot(x);saveas(gcf,’filename’,'bmp’);saveas(gcf,'filename',’emf’);saveas(gcf,'filename’,’jpg');% Step 3. 清理现场clear all; clc; close all;下面的代码可以创建一个大小为整个屏幕的四分之一,位置在屏幕在左上角的一个figure对像,使用root对象的ScreenSize属性来取得屏幕的尺寸,ScreenSize是由四个元素组成的数据:[left,bottom,width,height])。
基于Matlab的USB接口视频监控设计在开发监控软件前,需要验证图像处理算法的正确行和可行性,但直接调用微机和摄像设备的底层硬件比较复杂。
这里介绍一种通过Matlab软件设计USB 接口的视频监控方案。
经实验验证,这种方法简单易行,非常适合做监控与图像处理算法的前期验证工作。
标签:Matlab;USB接口;视频监控;图形用户界面1 视频监控技术视频监控是保障社会生活与生产安全的重要方法,通常视频监控由监视设备、传输设备、存储单元、控制单元和显示设备设备组成。
按技术发展分类,可分为:第一代模拟监控系统、第二代数字化硬盘监控系统和第三代网络远程监控系统。
模拟监控系统结构复杂、设备繁多,特别是在需要远距离传输时,架设成本高。
第二代数字化硬盘监控系统可以通过现有的电信通信网络传输数据,解决了远距离传输问题,但实时性差、延时长、多路实时监控困难。
第三代网络远程监控系统利用图像处理技术、嵌入式技术和宽带网络把监控中心和监控终端目标融合为一个整体,实现了监控的远程化、实时化和集成化。
由于第三代网络远程监控系统的兴起,视频监控的开发方案也变得多样化、平台化。
以前开发视频监控系统的开发难度较高,其是纯硬件开发或利用调用硬件能力强的少量上位机开发软件开发,如VC++等,硬件接口包括复合视频接口、二分量视频接口、色差分量视频接口、VGA接口和DVI接口。
现在可以在PC 平台上利用通用的USB接口进行视频通信,开发软件也有更多的选择,这样就降低了开发和调试工作的难度,更有利于家用和小型监控系统的开发。
这里就介绍一种基于Matlab软件的USB接口视频监控设计方案。
2 USB接口的驱动USB接口的全称是通用串行总线,是一种计算机通信的串口总线标准,具有的热拔插、体积小、标准统一、可串接的优点。
Matlab软件可以对USB接口进行调用,是一款基于矩阵计算的数学软件,但其具有强大的、多样的开发工具箱,利用工具箱可以方便的进行科学研究和工程设计。
利用matlab GUI编程实现对不同格式的图片的打开和保存建立的GUI如下:在打开按钮的回调函数里,利用uigetfile()函数建立一个打开文件的对话框,利用imread()函数来打开图片,imshow()函数显示图像,具体代码如下:[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');if isequal(filename,0)disp('Users Selected Canceled');elsestr=[pathname filename];im = imread(str);axes(handles.axes1);%axes1是坐标轴的标示imshow(im);end;运行之后的截图如下:在保存按钮的回调函数中,利用了uiputfile()函数建立了一个保存文件的对话框,调用matlab 的imwrite()函数保存经过修改的图像,具体代码如下:[filename,pathname]=uiputfile({'*.bmp';},'保存图片','Undefined.bmp');if ~isequal(filename,0)str = [pathname filename];px=getframe(handles.axes1);%saveas(gcf,str,'bmp');�ta = getappdata(gcf,'Timg');imwrite(px.cdata,str,'bmp');close(gcf);elsedisp('保存失败');end;其中的函数getframe()是为了获取坐标轴中的一帧图像,其返回的对象中有cdata和colormap 两个成员。
实验一 Matlab及其图像处理工具箱的使用一、实验目的与要求1.熟悉常用图像的格式和类型。
2.熟练掌握在MATLAB中如何读取和保存图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何进行图像间转化。
5.掌握如何实时获取USB2.0摄像头采集的视频图像。
二、实验内容及步骤1.利用imread函数读取一幅图像,设名为cameraman.tif,存入一个数组中;I=imread(‘cameraman.tif’); % 读入原图像,tif格式2.利用whos 命令提取该读入图像cameraman.tif的基本信息;whos I;%显示图像I的基本信息3.利用imshow()函数来显示这幅图像;imshow(I) %显示图像前三步综合程序:>> I=imread('cameraman.tif');>> whos IName Size Bytes Class AttributesI 256x256 65536 uint8>> imshow(I)步骤三图像:4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;程序:>> imfinfo cameraman.tifans =Filename:'D:\Program Files\MA TLAB\R2009a\toolbox\images\imdemos\cameraman.tif'FileModDate: '04-十二月-2000 13:57:54'FileSize: 65240Format: 'tif'FormatV ersion: []Width: 256Height: 256BitDepth: 8ColorType: 'grayscale'FormatSignature: [77 77 42 0]ByteOrder: 'little-endian'NewSubFileType: 0BitsPerSample: 8Compression: 'PackBits'PhotometricInterpretation: 'BlackIsZero'StripOffsets: [8x1 double]SamplesPerPixel: 1RowsPerStrip: 32StripByteCounts: [8x1 double]XResolution: 72YResolution: 72ResolutionUnit: 'None'Colormap: []PlanarConfiguration: 'Chunky'TileWidth: []TileLength: []TileOffsets: []TileByteCounts: []Orientation: 1FillOrder: 1GrayResponseUnit: 0.0100MaxSampleV alue: 255MinSampleV alue: 0Thresholding: 1Offset: 64872ImageDescription: [1x112 char]5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
使用MATLAB进行USB摄像头的编程编程 2009-05-19 08:52:07 阅读475 评论0 字号:大中小订阅在CSDN上看了一篇“如何使用MATLAB进行USB2.0摄像头的编程”的博文,感觉不错,现转摘如下:整个过程我们需要做如下几件事情: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: 0DeviceName: '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_3 52x288' 'I420_640x480'Columns 6 through 9'RGB24_1280x960' 'RGB24_160x120' 'RGB24_176x144' 'RG B24_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()%指定预览窗体显示的figureaxes()%指定预览窗口显示的坐标系hImage = image( zeros(vidRes(2), vidRes(1), nBands) );preview(obj, hImage);(3)图像捕捉、显示和保存代码:%frame是H×W×B的矩阵。
matlab中关于摄像头的获取,保存
matlab中有关于摄像头捕捉部分的内容,在image acquisition toolbox 中,大家可以查看matlab的帮助文档进行学习。
1. 首先要安装硬件设备,就像显卡和usb camera等七七八八的硬件设备。
2.查询硬件信息,关于这个的内容,csdn上有一个blog说的比较详细了,我不再多说了。
3.Create a Video Input Object,这主要是调用videoinput该函数,这个函数有3个参数,适配器名字的参数是必备的,其他都可以默认,这个函数大家稍微研究研究,参考着前两步就能搞定。
4. 预览图像,你可能需要查看图像是否能令你满意,例如你想调整摄像头焦点的位置,改变光照,对摄像头做某些改变。
5.等预览过图像后,我们就需要对一些属性进行配置,例如用于捕获图像,把图像存到磁盘上等等配置。
6. 开始捕获图像
7.清除。
整个过程我们需要做如下几件事情:
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相关的版本信息(第一次我们一般使用这个)
1.>> info=imaqhwinfo
2.
=
4.
5. InstalledAdaptors: {'coreco' 'winvideo'}%这里可
以看到我的PC上安装了两个适配器
6.MATLABVersion: '
7.6 (R2008a)'
7. ToolboxName: 'Image Acquisition Toolbox'
8. ToolboxVersion: '3.1 (R2008a)'
复制代码
有输入参数的时候,返回一个结构体,包含了指定的适配器的数据信息
1.>> win_info=imaqhwinfo('winvideo')%我们看看第二适配器的具
体参数
2.
3.win_info =
4.
5. AdaptorDllName: [1x81 char]%适配器dll文件绝对
路径
6. AdaptorDllVersion: '3.1 (R2008a)'%适配器dll文件版本
7. AdaptorName: 'winvideo'%适配器名称
8.DeviceIDs: {[1]}%设备ID号,这个我们经
常需要用到
9.DeviceInfo: [1x1 struct]%设备信息,这里
主要是图像获取设备的一些参数,比较重要
10.
11.%====================下面我们了解下,这个图像获取设备到底
有哪些的详细信息吧====================
12.
13.>> win_info.DeviceIDs
14.
15.ans =
16.
17. [1]
18.
19.>> dev_win_info=win_info.DeviceInfo
20.
21.dev_win_info =
22.
23. DefaultFormat: 'RGB24_320x240'%获取图片的
默认格式
24. DeviceFileSupported: 0
25. DeviceName: 'USB PC CAMERA P227'%设备
名称
26.DeviceID: 1%设备号
27.ObjectConstructor: 'videoinput('winvideo', 1)'%
对象构建方式,这个绝大部分都是一样的
28. SupportedFormats: {1x12 cell}%获取的图像支持格
式,一般都有好多种,上面的DefaultFormat只是默认格式而已
29.
30.%==================================看看图像获取设备支持的
图像格式==================================
31.
32.>> dev_win_info.SupportedFormats%可以看到我的PC上的摄像头
支持下面12中图片格式
33.
34.ans =
35.
36.Columns 1 through 5
37.
38. 'I420_160x120' 'I420_176x144' 'I420_320x2
40' 'I420_352x288' 'I420_640x480'
39.
40.Columns 6 through 9
41.
42. 'RGB24_1280x960' 'RGB24_160x120' 'RGB24_1
76x144' 'RGB24_320x240'
43.
44.Columns 10 through 12
45.
46. 'RGB24_352x288' 'RGB24_640x480' 'RGB24_80
0x600'
复制代码
视频预览、采集和保存(1)创建视频输入对象
obj = videoinput(adaptorname,deviceID,format)
adaptorname:适配器名称,首次可以使用不带参数的imaqhwinfo 函数获取
deviceID:设备ID号,首次可以通过imaqhwinfo函数获取
format:视频采集格式,可以通过DeviceInfo的SupportedFormats 获取,不填写则使用默认格式
1.>> obj = videoinput('winvideo',1,'RGB24_320x240')%这里我们
使用默认的视频采集格式
2.
3.Summary of Video Input Object Using 'USB PC CAMERA P227'.
4.
5.Acquisition Source(s): input1 is available.
6.
7.Acquisition Parameters: 'input1' is the current
selected source.
8.10 frames per
trigger using the selected source.
9.'RGB24_320x2
40' video data to be logged upon START.
10.Grabbing
first of every 1 frame(s).
11.Log data to
'memory' on trigger.
12.
13.Trigger Parameters: 1 'immediate' trigger(s)
on START.
14.
15.Status: Waiting for
START.
16.0 frames
acquired since starting.
17.0 frames
available for GETDATA.
复制代码
(2)打开视频预览窗口
himage=preview(obj,himage)
obj:视频采集对象
himage:视频预览窗口对应的句柄,也就是说在指定的句柄对象中预览视频,该参数可以空缺
至于预览窗口的关闭和停止可以使用colsepreview和
stoppreview函数
1.vidRes = get(obj, 'VideoResolution');
2.nBands = get(obj, 'NumberOfBands');
3.figure()%指定预览窗体显示的figure
4.axes()%指定预览窗口显示的坐标系
5.hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
6.preview(obj, hImage);
复制代码
(3)图像捕捉、显示和保存
1.%frame是H×W×B的矩阵。
H图像高度,由ROIPosition指定;w
图像宽度,由ROIPosition指定;B索线个数,由NumberOfBands 指定
2.frame = getsnapshot(obj);%获取视频的一帧
3.imshow(frame);%显示获取那一帧
4.imwrite(frame,'snap.jpg','jpg');。