matlab usb摄像头---实时视频---等间隔时间提取图片
2016-08-17 12:42
681 查看
(1)基础:
1.在附加功能里添加OS Generic Video Interface2.查询电脑摄像头参数imaqhwinfo 有时适配器可能是同一个,
RGB颜色空间中,每种颜色都可以用三个变量来表示,为红色、绿色、蓝色的强度
YUV颜色空间中,“Y”代表明亮度(Luma);“U”和“V”表示色度(Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色;在YUV颜色空间中,图片是通过复合模式存储的.由于不同颜色空间的存储量不同,因此运算速度也不相同;RGB24最慢,应必避免使用;最快为YV12,其次是YUY2,YV12的数据存储量仅占RGB32的一半
(2)创建对象:
obj = videoinput(adaptorname,deviceID,format)
(3)显示视频:
vidRes = get(obj, 'VideoResolution'); nBands = get(obj, 'NumberOfBands'); figure()%指定预览窗体显示的figure axes()%指定预览窗口显示的坐标系 hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(obj, hImage);
(4)保存图片:
frame = getsnapshot(obj);%获取视频的一帧 imshow(frame);%显示获取那一帧 imwrite(frame,'snap.jpg','jpg');
(5)整个程序:实现实时视频定时间隔提取图片
obj=videoinput('winvideo',2,'YUY2_640x480');%创建视频对象 set(obj,'TriggerRepeat',Inf);%设定触发次数 set(obj,'FramesPerTrigger',1);%设定每次触发捕获帧数 set(obj,'FrameGrabInterval',1);%设定捕获帧的时间间隔(默认的是1,即每一帧都抓取;如果设置为3,则每3帧取一帧) objres=get(obj,'VideoResolution');%得到视频分辨率 nBands=get(obj,'NumberOfBands');%得到色彩数目(rgb是相当于是三通道) hImage=image(zeros(objres(2),objres(1),nBands)); preview(obj,hImage);;%预览 t=clock; n=1; tic; while n<31%提取图片的个数 if etime(clock,t)>=0.1; %电脑时间循环提取图片,还有cputime函数也可完成时间循环,用法相同,只不过它是根据CPU主频计算的 t=clock; frame=getsnapshot(obj); a=ycbcr2rgb(frame); str=['capture',num2str(n),'.jpg']; imwrite(a,str,'jpg'); n=n+1; end end toc;
相关文章推荐
- 【Matlab】将avi视频提取出帧序列图片并保存
- 基于H264-USB摄像头的RTP实时视频的传输
- MATLAB图片,视频,摄像头的读取和显示
- Matlab成长之路_1(图片,视频,摄像头的读取和显示)
- directshow+opencv显示usb的摄像头代码(并保存视频中的图片)
- OpenCV摄像头获取视频并实时保存每帧图片
- matlab_图片,视频,摄像头的读取和显示
- Ehome:智能家居之基于USB摄像头的实时视频监控功能
- ffmpeg学习:ffmpeg下载,播放音频、视频,读取USB摄像头数据流并实时播放
- matlab提取视频流与图片成视频
- Linux-视频监控系统(10)-对USB摄像头的YUV图片压缩成视频
- 使用ffmpeg捕获USB外部摄像头视频流实时播放
- Android中实时视频传输(摄像头实时视频传输)解决方案<二>
- 使用ffmpeg捕获USB外部摄像头视频流
- 采集音频和摄像头视频并实时H264编码及AAC编码
- matlab连接摄像头读取视频部分解释
- 图片压缩 DCT变换 实时视频
- 主题:android调用系统摄像头拍照图片和视频
- 使用MATLAB进行USB摄像头的编程
- 毕业设计——人脸检测——002 MATLAB实现提取一张图片像素点的RGB值