MATLAB打开USB摄像头的操作以及常见问题
- 1 前言
- 2 打开USB摄像头并写视频
- 2.1 摄像头相关操作
- 2.2 写视频相关操作
- 3 查询摄像头设备信息指令
- 4 常见问题
1 前言
如果你是视频技术处理研究领域的工程人员,那么用MATLAB&OpenCV打开摄像头,以及获取相关信息,是再常规不过的操作了。
本文是对MATLAB打开USB摄像头操作的知识点梳理和总结。
操作环境
- MATLAB 2015b
- Logitech HD720P
- Windows 10 Enterprise 64Bit
2 打开USB摄像头并写视频
2.1 摄像头相关操作
video_source = videoinput('winvideo',1);
preview(video_source);
这两行指令就可以打开USB摄像头,并预览显示了,当然,这里采用的都是默认参数,如果想控制视频参数,可以通过set方法。
video_source = videoinput('winvideo',1,‘RGB24_640x480’);
set(video_source,'ReturnedColorSpace','rgb');
preview(video_source);
此时打开摄像头成功,会有一个弹窗出现显示实时的画面。
如果想在某一时刻获取视频帧,可以这样操作
frame = getsnapshot(video_source);
image(frame);
获取的帧是从视频输入流中直接获取,可以通过时间函数来控制获取的频率,获取的帧可以存储在一个矩阵当中,作为一个视频流,方便计算。
2.2 写视频相关操作
打开摄像头,更多的操作是保存一段视频,这要用到一个保存操作。
video_source = videoinput('winvideo',1,'RGB24_640x480');
set(video_source,'ReturnedColorSpace','rgb');preview(video_source);file_name = 'test.avi';
% 创建一个写文件的对象
writer = VideoWriter(file_name,'Motion JPEG AVI');
writer.FrameRate = 30.0;
% 通过总帧数来控制视频长度
length = 300;
% MATLAB里的视频文件其实是包含了两个部分的复合结构体,
% 这两个部分,一个是色域colormap,一个是视频数据内容
file.colormap=[];
% 打开对象,开始录制
open(writer);for i=1:lengthframe = getsnapshot(video_source);file.cdata = frame;writeVideo(writer,file);
end
% 随手把该关的对象全关掉,是个好习惯
close(writer);
closepreview;
delete(video_source);
此时你会发现你的根目录文件夹里多了一个test.avi
的文件。VideoWriter能做的事情还有很多,比如使用set方法更改一些视频录制参数等。
3 查询摄像头设备信息指令
有些时候需要用到一些硬件信息,如视频编码格式。摄像头的硬件性能决定了其视频编码范围,相比于软件编码近乎万能的超凡能力(FFMPEG),硬件设备的硬编码能力十分有限,所以我们需要知道我们用的摄像头都有哪些信息和功能。
win_info = imaqhwinfo('winvideo');
此时会打开一个结构体,这个结构体几乎包含了我们所需要的一切了,简单一点,可以直接从工作站里面点击打开其中内容,其中最常用的是DeviceInfo
字段,里面包含其所支持的所有编码格式:
相对应的,其编码格式的完整查询指令:
win_info = imaqhwinfo('winvideo');
win_info.DeviceInfo.SupportedFormats;
可能更直观一点——
顺便吐槽一下,不知道为什么,网上的技术贴总是把视频编码的查询写得那么复杂,明明2行就能解决问题的事情,非要写七八行……
4 常见问题
videoinput函数报错问题
如果你是第一次使用MATLAB操作摄像头,有时候可能需要你安装一个插件来支持你的硬件设备,比如这种情况——
点击Support Package Installer,安装一个插件就行了,不需要重启MATLAB
如果你打不开这个界面,那么可能你的MATLAB没有破解完整,最糟糕的情况,可能需要重装MATLAB。
帧率问题
**软件手段只能在硬件范围内起控制作用。**尽管我们有一个设置帧率的set函数,但麻烦的是,硬件有时候并不受软件控制,比如你设置帧率为100fps,但是一般USB摄像头只能支持到30fps了,100+都是高速摄像机的水平(好几万的那种),所以只能到30fps。更常见的情况是,当时用笔记本电脑,笔记笨使用内置电池,电量低的时候,摄像头受操作系统电量管理的影响,此时帧率会变得可能只有10fps左右(就是画面看起来糊糊的那种)。所以帧率有时候真的很难控制,因情况而异,如果你需要帧率作为计算参数,可以考虑通过统计时间,通过总帧数反推实际帧率,得到真实值。
编码格式的问题
图像色域、视频编码格式、文件格式,这是三个概念,这里不再详细展开,但一般而言,几乎所有的设备都是支持RGB色域和RGB编码格式的,文件格式默认avi即可。如果对其他格式有想法,硬件又不支持,可以考虑使用视频转码(推荐使用FFMPEG)。
#5 总结
这些操作其实没有技术含量,如果需要更深入的探索,可以钻研MATLAB DOC。这里写个帖子,以记录自己过去所学的知识点。
MATLAB打开USB摄像头的操作以及常见问题相关推荐
- 31全志r58平台Android4.4.2下打开USB摄像头
31全志r58平台Android4.4.2下打开USB摄像头 2018/10/26 16:00 版本:V1.0 开发板:SC5806 1.系统编译:(略) 2.需要修改的文件: W:\r58_andr ...
- MATLAB调用USB摄像头实现过程
使用USB Webcams包进行调用和打开 Matlab自身不支持直接读取摄像头数据,需要到Image Acquisition Toolbox Support Package中安装"MATL ...
- MATLAB调用USB摄像头的过程记录
目录 01-测试USB摄像头是否正常工作 02-安装USB Webcams硬件支持包 03-调用系统中的USB摄像头 01-测试USB摄像头是否正常工作 首先将USB摄像头连接上电脑主机,然后通过Wi ...
- matlab打开笔记本摄像头_matlab-调用摄像头人脸识别
----------------------------边学边写边学习------------------------------------- 版本:2014a 调用摄像头 a = imaqhwin ...
- matlab打开笔记本摄像头_如何利用MATLAB实现摄像头视频获取和保存
一.读取摄像头视频 如题目,首先你需要有一个摄像头(usb或者本本自带的都可以)并且安装好了驱动,保证设备可以正常使用. 先来段简单的通过MATLAB显示摄像头视频的代码: vid = videoin ...
- ffmpeg 打开USB摄像头
usb摄像头的设备名称: (1)window下,可以通过命令查看ffmpeg -list_devices true -f dshow -i dummy 也可以直接在 设备管理器 中查看,例如: ( ...
- 【高分】ubuntu 、打开USB摄像头、Linux、USB摄像头驱动
一.让系统可以识别到usb摄像头设备 打开终端,输入命令:ls /dev/v*,则可看到"/dev/video0",表示成功驱动摄像头. 如果没有的话,拔掉摄像头,重新插上 ...
- 使用openCV打开USB摄像头(UVC 小米micro接口)
之前在AndroidStudio上就用了别人用写的库成功地打开了USB摄像头. 于是我之后又在PC上尝试了一下,首先去淘宝买了个MICRO母转USB公的转接口,然后在Qt上配置了一下OPENCV后开始 ...
- OpenCV 打开USB摄像头帧率低问题解决
采用OpenCV对USB摄像头进行视频图像抓取时,如果图像帧抓取帧率低,可采用以下方式提高帧率. cv::VideoCapture camera_capture; camera_capture.ope ...
- matlab打开笔记本摄像头_如何解决笔记本电脑摄像头异常问题
如果您遇到笔记本电脑相机异常问题(无法侦测视讯装置.视讯无画面.视讯画面异常.视讯画面颠倒等等),请参考以下疑难解答方式依序尝试. 提供应用程序权限 / 检查防病毒软件/ 更新Windows Upda ...
最新文章
- AI大牛周明打造的轻量“孟子模型”开源!靠10亿参数冲上CLUE榜第三,可用于新闻分类、文案生成...
- PHP/AJAX——登录页面与登录信息提示(非安全版本)
- 利用Conda尝鲜Python 3.10
- 读《图解HTTP》总结--第九章
- LC_ALL: cannot change locale (en_US.UTF8)问题解决
- php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
- MongoDB 事务,复制和分片的关系
- post报文给mqtt服务器没有响应,post请求转为mqtt的方法
- 迭代器,生成器,三元表达式,列表解析式
- asp和php漏洞,ASP_实例分析ASP上传漏洞入侵实战及扩展,【上传漏洞欺骗技术】 - phpStudy...
- Pyspider 框架的用法
- 网络公司网站源码介绍Version1.0
- 青云决最新服务器,青云决合区表
- 今日恐慌与贪婪指数为15 恐慌程度小幅上升
- 2022年lazada跨境店 新,马,泰,菲等4个国家正式开放食品类目招商
- python数据清洗笔记
- 记一次中国移动家用宽带设置成支持IPv6网络的经历
- Proteus中小圆圈引脚连线
- 如何系统学习LabVIEW?
- wince下更新NK软件(wince ghost V1)成功了