我是靠谱客的博主 幸福帽子,这篇文章主要介绍matlab使用摄像头,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
1.整个过程需要做如下几件事情: 1)查询USB2.0Camera 的具体参数(imaqhwinfo) 2)创建视频输入对象(videoinput) 3)图像预览和显示(preview、stoppreview、closepreview和image) 4)获取视频图像(getsnapshot) 5)图像获取设备的获取和设置(get和set) 6)关闭视频对象(delete) 2.图像获取工具箱术语: 图像获取设备:比如摄像头、扫描仪 图像获取适配器:主要的目的是通过驱动在Matlab和图像获取设备之间传递信息 ROI:region-of-interest 感兴趣区域 3.常用函数 1)getselectedsource 2)imaqfind 3)isvalid 4)peekdata 5)getdata 6)imaqmontage 4.查询USB2.0Camera 的具体参数(imaqhwinfo) >> info=imaqhwinfo info = InstalledAdaptors: {'coreco' 'winvideo'} MATLABVersion: '7.10(R2010a)' ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '3.5(R2010a)' >> win_info=imaqhwinfo('winvideo') win_info = AdaptorDllName:'D:Program FilesMATLABR2010Atooboximaqadaptorswin32mwwinvideoimaq.dll' AdaptorDllVersion: '3.5 (R2010a)' AdaptorName: 'winvideo' DeviceIDs: {[1]} DeviceInfo: [1x1 struct] > win_info.DeviceIDs ans = [1] >> dev_win_info=win_info.DeviceInfo dev_win_info = DefaultFormat: 'YUV2_160x120' DeviceFileSupported: 0 DeviceName: 'USB 口 口 口 口' DeviceID: 1 ObjectConstructor: 'videoinput('winvideo', 1)' SupportedFormats: {'YUV2_160x120' 'YUV2_176x144' 'YUV2_320x240' 'YUV2_352x288' 'YUV2_640x480'} >> dev_win_info.SupportedFormats ans='YUV2_160x120' 'YUV2_176x144' 'YUV2_320x240' 'YUV2_352x288' 'YUV2_640x480' 5.视频预览、采集和保存 (1)创建视频输入对象 obj = videoinput(adaptorname,deviceID,format) adaptorname:适配器名称,首次可以使用不带参数的imaqhwinfo函数获取 deviceID:设备ID号,首次可以通过imaqhwinfo函数获取 format:视频采集格式,可以通过DeviceInfo的SupportedFormats获取,不填写则使用默认格式 >> obj = videoinput('winvideo',1,'YUV2_640x480') Summary of Video Input Object Using 'USB 口口口口'. Acquisition Source(s): input1 is available. Acquisition Parameters: 'input1' is the current selected source. 10 frames per trigger using the selected source. 'YUV2_640x480'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 = getsnapshot(obj); imshow(frame); imwrite(fame,'snap.jpg','jpg'); 注:frame是H×W×B的矩阵。H图像高度,由ROIPosition指定;w图像宽度,由ROIPosition指定;B索线个数,由NumberOfBands指定 (4)最简单采集实验,输入如下代码,可以得到预览下的默认格式的摄像头捕捉窗口 obj=videoinput('winvideo',1); preview(obj); (5)输入如下代码可返回视频信息 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 = input1Tag = Type = videosource Device Specific Properties: BacklightCompensation = on Brightness = -16 Contrast = 120 FrameRate = 30.0000 Gamma = 60 Hue = 0 Saturation = 40 Sharpness = 3 (6)输入如下代码 clc; clf; clear all; imaqmem(30000000); %申请内存空间 �APTOR: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使用摄像头的全部内容,更多相关matlab使用摄像头内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部