A. 新人求助,matlab调用摄像头
这个程序在win 7 matlab 2013b上运行成功。但在win8.1和win10 matlab 2014a和2014b上运行会报错,,给你参考参考吧!
程序的功能是调用电脑自带的摄像头实现图像采集,拍照,录像。
vid=videoinput('winvideo');
set(vid,'TriggerRepeat',inf);
h=figure('units','normalized','menubar','none','numbertitle','off');
ha=axes('parent',h,'units','normalized','position',[.005 .7 .99 .925]);
axis off;
hb=uicontrol('parent',h,'units','normalized'码做键,'position'胡闷,[.01 .1 .199 .6],'string','Preview','callback',...
['hf=figure(''units'',''normalized'',''menubar'',''none'',''numbertitle'',''off'');'...
'axes(''parent'',hf,''units'',''normalized'',''position'',[.005 .007 .99 .99]);'...
'objRes=get(vid, ''VideoResolution'');'...
'nBands=get(vid,''NumberOfBands'');'...
'hImage=image(zeros(objRes(2),objRes(1),nBands));'...
'preview(vid,hImage);']);
hb1=uicontrol('parent',h,'units','normalized','position',[.604 .1 .198 .6],'string','Play','callback',...
['mplay(''video.avi'');'...
'pause(0.1);play(R);']);
bs=uicontrol('parent',h,'units','normalized','position',[.208 .1 .198 .6],'string','Save','callback',...
['C=questdlg(''确定保存'',''保存'',''Y'',''N'',''Y'');'...
'if C==''Y'''...
'mov=avifile(''video.avi'',''fps'',20);'...
'R=audiorecorder(44100,24,2);'...
'for i=1:80'...
'F=getframe(hf);'...
'mov=addframe(mov,F);'...
'record(R);'...
'pause(0.05);'...
'end;'...
'stop(R);mov=close(mov);'...
'msgbox(''Succeed saving!!'');'...
'end;']);
hd=uicontrol('parent',h,'units','normalized','position',[.406 .1 .198 .6],'string','Photoing','callback',...
['ph=getsnapshot(vid);'...
'figure(3);'...
'imshow(ph);'...
'c=questdlg(''是否保存'',''保存'',''Y'',''N'',''Y'');'...
'if c==''Y'''迟巧...
'imwrite(ph,''photo.png'');'...
'end;']);
hc=uicontrol('parent',h,'units','normalized','position',[.802 .1 .198 .6],'string','Delete','callback',...
['cc=questdlg(''确定要删除文件'',''删除'',''Y'',''N'',''Y'');'...
'if cc==''Y'''...
'try '...
'delete(''video.avi'');'...
'delete(''photo.png'');'...
'end;'...
'end']);
hl=uicontrol('parent',h,'units','normalized','position',[.01 .05 .09 .05],'string','Close','callback',...
['try '...
'close(h);'...
'close(hf);end']);
B. 新人求助,matlab调用摄像头
你可以搜索一下关于matlab 图像采集工具箱。
我以前用CCD就是这么用的 网上找的源唯一段:
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)'
C. 新人求助,matlab调用摄像头
打开Matlab软件
在命令窗口中输入 edit Camera 会打开笑扮丛代码编辑窗口
复制如下语句到上面窗口中:
%获得缺羡设备信息
imaqhwinfo
obj = videoinput('winvideo');
set(obj, 'FramesPerTrigger', 1);
set(obj, 'TriggerRepeat', Inf);
%定义一个监控界面
hf = figure('Units', 'Normalized', 'Menubar', 'None','NumberTitle', 'off', 'Name', '实时拍照系统');
ha = axes('Parent', hf, 'Units', 'Normalized', 'Position', [0.05 0.2 0.85 0.7]);
axis off
%定义两个按钮控件
hb1 = uicontrol('Parent', hf, 'Units', 'Normalized','Position', [0.25 0.05 0.2 0.1], 'String', '预览', 'Callback', ['objRes = get(obj, ''VideoResolution'');' ...
'nBands = get(obj, ''NumberOfBands'');' ...
'hImage = image(zeros(objRes(2), objRes(1), nBands));' ...
'preview(obj, hImage);']);
hb2 = uicontrol('Parent', hf, 'Units', 'Normalized','Position', [0.55 0.05 0.2 0.1], 'String', '拍照', 'Callback', 'imwrite(getsnapshot(obj), ''im.jpg'')');
运行后界面如下,可碰樱以实现拍照功能
这样我们实现了MATLAB的拍照
这样我们可以在程序中添加它的各种软件中了
D. 如何在matlab中设置usbhub连接并打开多个摄像头
1.如果把四个摄像头分别插在电脑的四个USB口,可以同时预览兄察四个摄像头的画面
2.用USB HUB连接之后,matlab可以识别乱兆四个摄像头,并且可以设置每个摄像头的对哗尘租象
3.每次都能开启一个摄像头进行预览,然后就打不开其他的了。
4.用matlab打开并预览一个摄像头的画面之后。不管是用matlab 还是其他的软件,都无法开启第二个摄像头
5.hub是 UNITEK 的USB3.0 4接口,可以单独供电。
E. 新人求助,matlab调用摄像头
首先确定安装好了摄像头的驱动,打开“应用程序”>“image acquisition”查看
新建图形用户界面:“新建”>“图形用户界面销迟”
从左侧选择控件,添加到面板
双击空间进行属性设置,“string”为显示名称,“tag”为id。将两个axes的“visable“属性设置为”off“
更改”.m“文件:
function varargout = untitled1(varargin)
% UNTITLED1 MATLAB code for untitled1.fig
% UNTITLED1, by itself, creates a new UNTITLED1 or raises the existing
% singleton*.
%
% H = UNTITLED1 returns the handle to a new UNTITLED1 or the handle to
% the existing singleton*.
%
% UNTITLED1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in UNTITLED1.M with the given input arguments.
%
% UNTITLED1('Property','Value',...) creates a new UNTITLED1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
亏山李% Edit the above text to modify the response to help untitled1
% Last Modified by GUIDE v2.5 12-Mar-2015 20:53:43
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
唯粗gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled1_OpeningFcn, ...
'gui_OutputFcn', @untitled1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before untitled1 is made visible.
function untitled1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled1 (see VARARGIN)
% Choose default command line output for untitled1
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes untitled1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = untitled1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
global vid;
vid = videoinput('winvideo');
%set(vid,'ReturnedColorSpace','grayscale');
function pushbutton1_Callback(hObject, eventdata, handles)
axes(handles.axes1);
global vid;
vidRes = vid.VideoResolution;
nBands = vid.NumberOfBands;
hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
preview(vid, hImage);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global vid;
f=getsnapshot(vid);
imshow(f);
6
点击运行,单击”preview“进行预览,单击”snapshot“捕获图像
F. 如何利用Matlab进行usb摄像头的控制
这个好解决,你外接的摄像头之所以不能用是因为电脑悔态里面有两个摄像头,系统默认使用笔记本自带的摄像头,你打开【控制面板】,找到【硬件和声音】选项,在第一行【设备和打印机】下面找到【设备管理】选项卡并打开兄前虚,你会发现在【图像设备】里面有两个驱动(一个是你自带摄像头驱动,一个是你外置摄像头驱动),你把自带的摄像头驱动给禁用了,一般第一个驱动是自带羡燃的摄像头驱动,鼠标放到驱动上点击右键,选择禁用,就行了