(来点有用的)MATLAB摄像头实时图像处理

匿名 (未验证) 提交于 2019-12-02 23:32:01


by HPC_ZY


第一步:安装硬件支持包

  1. 打开附加功能项
  2. 查找如下摄像头支持包

第二步:获取摄像头信息

  1. 输入 imaqhwinfo,查看当前适配器

    如图,我们的适配器名为 winvideo

  2. 输入imaqhwinfo(‘winvideo’),查看该适配器下所有设备


由于没有接入USB摄像头,当前只有笔记本电脑自带的摄像头

  1. 通过DeviceInfo查看摄像头详细信息

    其中 SupportedFormats是该摄像头支持的图像色彩与尺寸,我的设备如下:

  2. 上述代码

% 查看适配器 disp(imaqhwinfo) % 查看设备及其支持的格式 info = imaqhwinfo('winvideo'); disp(info.DeviceInfo.SupportedFormats) 

第三步:数据实时处理

有了前面的准备,就可以正式开始了。

  1. 连接摄像头获取数据
% 生成对象并同步画面 obj = videoinput('winvideo',1,'MJPG_640x480); h = preview(obj); 

运行代码会弹出以下界面,实时画面

  1. 导出图像数据
    利用此函数 getsnapshot(obj) 即可导出图像,若想连续导出可通过以下方式
figure while ishandle(h)     frame = getsnapshot(obj);  % 获取帧     imshow(frame)     drawnow end 

注:
(1)帧率跟电脑配置有关,在当前尺寸下我只能达到10帧;
(2)通常直接使用MJPG格式,如果需要使用YUY2格式,在显示时用 ycbcr2rgb()将其改为RGB即可。

  1. 实时图像处理:简单边缘提取
    只需在上述代码中稍作修改
figure while ishandle(h)     frame = getsnapshot(obj);  % 获取帧     % -----------此处可添加你需要的操作------------     imedge = edge(rgb2gray(imedge),'log') % 计算log边缘     % -------------------------------------------     subplot(121),imshow(frame)     subplot(122),imshow(imedge)     drawnow end

效果图如下(由于太懒没有制作动图,仅截图示意,大家可自行测试)

最后

在此基础上,就可以进行更多高级操作,如:目标检测、运动追踪、双目测距……

有任何问题欢迎讨论,最后还是把测试代码上传
https://download.csdn.net/download/xsz591541060/11152130
由于很简单,不推荐下载,除非你买了年VIP。

文章来源: https://blog.csdn.net/xsz591541060/article/details/89676780
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!