[已答复] Matlab USB摄像头的延伸学习,参数调试

[复制链接]
math 发表于 2008-6-19 15:54:32
在这个帖子里,https://www.ilovematlab.cn/viewthread.php?tid=1458&highlight=%E6%91%84%E5%83%8F%E5%A4%B4

我给大家演示了如何使用Matlab来读usb 摄像头的图片数据。

在那个例子里面,我运用了matlab默认的属性。

今天我们学习一些比较高级的命令:

1: 如何修改读进来图片的resolution?

image acquisation的default 属性是160*120,这个属性大家不要随便修改,因为正确的步骤是:

拿到摄像头的格式文件:
  1. >> info = imaqhwinfo('winvideo')

  2. info =

  3.        AdaptorDllName: 'C:\Program Files\MATLAB71\toolbox\imaq\imaqadaptors\win32\mwwinvideoimaq.dll'
  4.     AdaptorDllVersion: '1.9 (R14SP3)'
  5.           AdaptorName: 'winvideo'
  6.             DeviceIDs: {[1]}
  7.            DeviceInfo: [1x1 struct]

  8. >> info.DeviceInfo

  9. ans =

  10.           DefaultFormat: 'I420_160x120'
  11.     DeviceFileSupported: 0
  12.              DeviceName: 'Stk DCM35 (OPLENIC #5830 CAMERA)'
  13.                DeviceID: 1
  14.       ObjectConstructor: 'videoinput('winvideo', 1)'
  15.        SupportedFormats: {1x10 cell}

  16. >>
复制代码


看到这一行了么:DefaultFormat: 'I420_160x120', 这就是标准的格式,注意,每个硬件的格式可能不一样,所以一开始必须执行 imaqhwinfo命令


修改:
  1. vid = videoinput('winvideo',1,'I420_640x480');
复制代码
2:图片的color space: rgb,YCbCr, grayscale

缺省是:YCbCr
命令调用:
  1. set(vid,'ReturnedColorSpace','rgb');
  2. frame = getsnapshot(vid);
复制代码
有问题,可以发新帖提问。

18 条回复


xiaochi831 发表于 2008-6-24 16:33:33

被动成像的定义

被动成像是什么概念啊

newhope821 发表于 2008-9-18 17:36:26
math真不错
又来学习的

qiangguoshu 发表于 2009-4-15 15:27:39

好帖

:D ,正好碰到这一问题,多亏math大哥这个帖子了

jinyp 发表于 2009-4-29 10:40:22

调用DeviceInfo不能显示设备信息

我安装了MVC-II-3M图像采集设备,但是调用DeviceInfo不能显示设备信息,不能显示该设备的信息,当然了Devicename也找不到。请问这是怎么回事呢?能帮我解决一下吗

qingcao2008 发表于 2009-5-11 09:11:09
想学习一下。

fairyred 发表于 2009-5-11 18:15:12
正在做这方面的课题!雪中送炭啊!

qingcao2008 发表于 2009-5-12 17:36:47
??? Multiple VIDEOINPUT objects can not access the same device simultaneously.

Error in ==> Untitled2 at 8
start(vidobj);
编程出现这个问题,是什么原因?

aohle 发表于 2009-6-30 13:59:44

不知道怎么实时显示

实时显示什么解决的

xq6221 发表于 2009-7-4 16:50:51

回复 8# qingcao2008 的帖子

你是不是用了多个摄像头插在USB接口上的? 而且你的是通过USB Hub接出来的,matlab没有办法识别通过Hub分解出来的地址,所以认为出现你的问题,你换一个独立的USB接口就可以了,如果你本身电脑商独立USB接口比较少就没有办法了——当然电脑集成的多个USB接口也有可能是通过Hub来扩展的。

tulipfingjjjjjj 发表于 2009-10-2 09:35:51
xia :loveliness: look ok xie xie 学习一下

aqq 发表于 2010-6-2 21:15:49
呵呵谢谢提示啊帮我解决了问题

angle54 发表于 2010-7-17 20:00:16

我有个问题想问下

vid=videoinput('winvideo',1,'YUY2_640x480')

set(vid,'TriggerRepeat',Inf);
vid.FrameGrabInterval = 5;

vid_src = getselectedsource(vid);
set(vid_src,'Tag','motion detection setup');

figure;
start(vid)
    data = getdata(vid,2);
    diff_im = imabsdiff(data(:,:,:,1),data(:,:,:,2));
    imshow(diff_im);
end
stop(vid)

前面的选定的数据源模式不是已经选了动作检测模式了吗?为什么后面start里面还要比较前后2帧的变化?
我尝试了下,把比较的部分去掉,却显示了和8楼一样的错误。。。但是我电脑上只接了一个摄像头。
哪位大哥帮我回答下,谢谢了

linxue968 发表于 2010-11-12 16:06:07

回复 1# math 的帖子

你好,math大哥,我今天碰到个怪事,我昨天用摄像头的时候,默认值还是YCbCr的,而且分辨率是120*160的,今天我再打开的时候都变了,我是按照上次的方法修改过,今天默认的变成了RGB24-320*640,而且更严重的是,我按照上面的采取一帧图像,生成的都是全零的一个矩阵,就是说都是零,如果换用一个函数,用getdata,会发现在10多帧数据后才有数据,这是怎么回事啊,期待你的解答,谢谢

smartcai 发表于 2011-1-12 23:32:00
math大哥好牛啊

fzsfile 发表于 2011-10-18 08:36:50
真诚感谢这么专业的介绍!

wulin361361 发表于 2012-2-3 15:39:51
怎么连接不上啊,能重发一下原来的程序吗?????谢谢谢

fengdad222 发表于 2012-4-8 12:12:04
好贴  必须顶起,, 学到了不少的东西

q1q1q1 发表于 2013-1-4 11:07:50
thank  study
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表