声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3672|回复: 14

[共享资源] 视频实时采集显示程序

[复制链接]
发表于 2007-10-30 18:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
程序虽非原创,但是我做的改动超过了70%。最近看有版友问信号实时采集和显示的问题。程序框架可以完全相同,只是获得信号源的形式不一样,这里通过videoinput函数获得视频源,然后进行后续的操作(通过analoginput可以或者一个模拟信号输入源)。如果你的电脑没有摄像头则程序会报错,需要有摄像头和相应的驱动做支持。画面有些卡,和用qq视频聊天的效果差不多
  1. clear all;
  2. imaqmem(30000000);
  3. hard=imaqhwinfo;
  4. name=hard.InstalledAdaptors;
  5. vid=videoinput(name{1});
  6. start(vid);
  7. h=figure('NumberTitle','off','Name','视频捕捉',...
  8.     'MenuBar','none','color','c',...
  9.     'Position', [0, 0, 1, 1], 'Visible', 'on');
  10. set(h,'doublebuffer','on','outerposition',get(0,'screensize'));
  11. h1=axes('Position', [0.03, 0.1, 0.45, 0.8],'Parent',h);
  12. axes(h1);hold on;axis off;%or set(h,'CurrentAxes',h1);
  13. text(.1, .1,'.','color','w');title('视频源');
  14. h2=axes('Position', [0.5, 0.1, 0.45, 0.8],'Parent',h);
  15. axes(h2);hold on;axis off;%set(h,'CurrentAxes',h1);
  16. text(.1, .1,'.','color',[1 1 1]);title('梯度图');
  17. while ishandle(h)
  18.     aa=getsnapshot(vid);% grabbing camera image.
  19.     flushdata(vid);
  20.     axes(h1);a=imshow(aa);
  21.     set(a,'EraseMode','none');
  22.     axes(h2);b=imshow(diff(double(aa(:,:,1)),[]));
  23.     set(b,'EraseMode','none');
  24.     drawnow;% this is important to view realtime.
  25. end
  26. delete(vid)
  27. disp('您选择了关闭!')
复制代码

------------------------------------------------------------------------------------------
如果你的电脑上有摄像头,而且视频聊天没有问题。那么这个程序
应该不会出什么问题,我用的是matlab7.0加蓝色妖姬。如果发现
问题,请贴出错误提示以便于完善程序!-----------花如月------------
------------------------------------------------------------------------------------------

[ 本帖最后由 花如月 于 2007-10-30 18:39 编辑 ]
temp.PNG

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-10-30 18:23 | 显示全部楼层
不错不错,填补了论坛这方面的空白
 楼主| 发表于 2007-10-30 18:29 | 显示全部楼层

回复 #2 eight 的帖子

原来的程序似乎是mathwork网站上的一个演示例子,用得是for循环。不能算是真正的实时,而且没有清除内存操作。多运行几次,就会提示内存超限,无法得到frame。需要重启matlab才可以,继续用

[ 本帖最后由 花如月 于 2007-10-30 18:34 编辑 ]
发表于 2007-10-30 19:14 | 显示全部楼层
强人啊~~ 学习ing..
发表于 2007-10-30 19:23 | 显示全部楼层
强悍
发表于 2007-10-30 21:02 | 显示全部楼层
高手阿
发表于 2008-1-5 16:11 | 显示全部楼层
%发现这个问题:

??? A timeout occurred during GETSNAPSHOT.

Error in ==> try2 at 19
    aa=getsnapshot(vid);% grabbing camera image.

%我的matlab版本R2007b
发表于 2008-1-5 19:36 | 显示全部楼层
原帖由 lzbones 于 2008-1-5 16:11 发表
%发现这个问题:

??? A timeout occurred during GETSNAPSHOT.

Error in ==> try2 at 19
    aa=getsnapshot(vid);% grabbing camera image.

%我的matlab版本R2007b


2007b 可能对这个函数作了改动,你 help 一下吧
发表于 2008-1-5 20:40 | 显示全部楼层
原帖由 eight 于 2008-1-5 19:36 发表


2007b 可能对这个函数作了改动,你 help 一下吧


谢谢,我回去help看看 :@)
发表于 2008-1-9 22:07 | 显示全部楼层
确实有楼上所说的问题
发表于 2009-5-18 23:01 | 显示全部楼层
视频怎么不能保存啊
发表于 2009-5-19 09:50 | 显示全部楼层

回复 楼主 花如月 的帖子

这个程序非得用 蓝色妖姬吗?
这是个什么软件?
 楼主| 发表于 2009-5-19 14:50 | 显示全部楼层

回复 12楼 cc2005726 的帖子

不是的,蓝色妖姬只是一种摄像头的牌子。
一般来说xp系统下,只要别的应用程序可以使用摄像头这个程序应该就可以。

如果matlab换了版本,对出错的函数可以help下,做些修改

评分

1

查看全部评分

发表于 2009-6-26 12:44 | 显示全部楼层

回复 板凳 花如月 的帖子

你好,最近做一个实验,需用到MATLAB采集视频,请问 你这段程序可以实现所采集的图像的保存吗?因为实验需要每秒采集25张图片或者每秒25帧的视频 共2分钟,所以需要把采集好的视频或图片实时保存到硬盘
发表于 2009-8-12 15:12 | 显示全部楼层
楼主啊,请问你的程序能实现毫秒级么?matlab读取显示一帧bmp图像都要零点几秒呢(用imread,imshow)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 22:13 , Processed in 0.077756 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表