概述
大家也可以加我的交流群,所有资料我会在群里分享出来哦:977947271
2020/5/30:
近日每天都有十几个很明显的小号加群,而且有的大号进群竟然打广告和卖不良物品,经我和群友讨论后,加群需要1元钱,但是进群后我会将钱退还给大家,只是为了过滤一些不好的人。
最近在做关于图像识别的项目。
接触了MATLAB的许多操作,在这里做下关于调用笔记本摄像头的笔记。
首先需要了解imaqhwinfo函数,在命令行输入imaqhwinfo就可以看到自己笔记本相关适配器和MATLAB版本的信息.但并不能看到摄像头的信息。
>>imaqhwinfo
ans =
包含以下字段的struct:
InstalledAdaptors: {'winvideo'}
MATLABVersion: '9.4 ( R2018a ) '
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '5.4 (R2018a)'`
想要了解摄像头的信息就需要在imaqhwinfo中添加相关函数
>>imaqhwinfo('winvideo')
下面是适配器相关信息
ans =
包含以下字段的struct:
AdaptorDllName: 'C:MATLABmwwinvideoimaq.dll'
AdaptorDllVersion: '5.4 (R2018)'
AdaptorName: 'winvideo'
DeviceIDs: {[1]}
DeviceInfo: [1×1 struct]
imaqhwinfo()返回的是一个结构体,其中 DeviceID 和 DeviceInfo比较重要。DeviceID 储存着电脑上所有可用摄像头的ID,每个ID对应着电脑可用的一个摄像头;DeviceInfo 里面储存着摄像头的信息,就是我们平时所说的视频格式。
下面以我的电脑为例:
使用 DeviceInfo.DeviceID 可以看到摄像头的 ID 为 1
>>I = imaqhwinfo('winvideo');
>>I.DeviceInfo.DeviceID
ans =
1
使用 DeviceInfo.SupportedFormats 函数可得到我的摄像头支持的格式是
{‘YUY2_160x120’} {‘YUY2_320x240’} {‘YUY2_640x480’}这三种。
>>I = imaqhwinfo('winvideo');
>>I.DeviceInfo.SupportedFormats
ans =
1×3cell 数组
{'YUY2_160x120'} {'YUY2_320x240'} {'YUY2_640x480'}
调用摄像头注意这个函数 videoinput(adaptorname,deviceID,format)
如果我使用ID为 ‘1’ 的摄像头,格式选择为{‘YUY2_640x480’},
那么代码为
videoinput('winvideo',1,'YUY2_640x480')
下面上简单的代码:
vid = videoinput('winvideo',1,'YUY2_640x480'); %选择摄像头和格式
preview (vid); %显示vid函数中摄像头拍摄的画面
frame = getsnapshot(vid); %获取每一帧的图片
figure;imshow(frame); %在figure中显示出摄像头拍摄的画面
%如果想保存图片可以使用下面的函数
%但这种函数保存打开摄像头那一瞬间的图片
%有时间我将介绍如何使用gui去实现随时拍照的代码,
imwrite(frame,'A.png');
下面是微微复杂点的代码,一般在实战中会用到,单纯是想玩的话,上面的代码已经够了。
obj = videoinput('winvideo',1,'YUY2_640×480');
%winvideo'由函数imaqhwinfo查出
set(vid,'FramesPerTrigger',1);
%FramesPerTrigger用特定的帧数去捕获选定的视频
set(vid, 'TriggerRepeat', Inf);
%不断地触发TriggerRepeat,以上代码一般不需要改动
set(vid,'ReturnedColorSpace','rgb');
%设置返回的视频颜色,‘rgb’是正常颜色,需要返回其他色彩可以在做改动
vidRes=get(obj,'VideoResolution');
%获得视频的长与宽,是二维数组
nBands=get(obj,'NumberOfBands');
%获得图像的颜色层数
hImage=image(zeros(vidRes(2),vidRes(1),nBands));
%获得图像的句柄
preview(obj,hImage);
%以上是我对这些代码的理解,具体情况在这里就没法细说了
这里就把简单的介绍完了。
建议有需要的朋友使用GUI去实现对视频、图片的播放、保存、并做相应处理的操作。
有时间我会把我的项目再深入介绍一下如何对这些进行操作,如果有感兴趣的朋友也可以联系我。
最后
以上就是激动镜子为你收集整理的如何使用MATLAB调用摄像头—代码详解的全部内容,希望文章能够帮你解决如何使用MATLAB调用摄像头—代码详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复