MATLAB摄像头实时图像处理

前言

本文介绍了一种捕获视频流的方法,在Matlab2018软件平台上实现了摄像头图像的实时获取。并给出了一个简单的demo对图像进行了边缘提取。


一、安装硬件支持包

  1. 在Matlab2018的主页上点击“附加功能”选项,如下图所示。
    MATLAB摄像头实时图像处理_第1张图片
  2. 查找如下图所示的摄像头工具箱,并安装。
    MATLAB摄像头实时图像处理_第2张图片

二、获取摄像头信息

1.在命令行输入imaqreset,强制工具箱搜索运行MATLAB时安装的新硬件,这个步骤非常重要。

2.使用 imaqhwinfo命令,查看当前图像采集适配器。如下图所示,图像采集适配器名为 winvideo,Image Acquisition Toolbox工具箱也已经安装完毕了。
MATLAB摄像头实时图像处理_第3张图片
3.使用 imaqhwinfo(‘winvideo’) 查看该适配器下所有设备
MATLAB摄像头实时图像处理_第4张图片
如图显示,共有两个设备DeviceIDs{【1】【2】}。一个设备是电脑内置摄像头,另一个设备是外接的USB摄像头。
4. 查看摄像头详细信息,此处查看USB摄像头信息
hwInfo = imaqhwinfo(‘winvideo’,2)
MATLAB摄像头实时图像处理_第5张图片
其中SupportedFormats字段是该摄像头支持的图像色彩与尺寸。
输入hwInfo.SupportedFormats获取摄像头支持格式,如图所示。

MATLAB摄像头实时图像处理_第6张图片
5. 这里是上述Matlab代码的一个汇总

imaqreset
% 查看适配器
disp(imaqhwinfo)
% 查看设备及其支持的格式
hwInfo = imaqhwinfo('winvideo',2)
disp(hwInfo.SupportedFormats)

三、数据实时处理

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

preview图像如图所示
MATLAB摄像头实时图像处理_第7张图片
2. 实时图像处理:简单边缘提取

figure
while ishandle(h)
    frame = getsnapshot(obj);  % 获取帧
    % -----------prewitt边缘提取------------
    imedge = bwmorph(edge(rgb2gray(frame),'prewitt'),'dilate'); 
% 将RGB图像转为灰度图像,并用prewitt算子边缘提取
    % -------------------------------------------
    subplot(121),imshow(frame)   %显示采集到的图像
    subplot(122),imshow(imedge)  %显示边缘提取后的图像
    drawnow     %强制刷新图像
end

显示效果如下图所示
MATLAB摄像头实时图像处理_第8张图片


总结

这就是本文的全部内容了,使用Matlab获取到了摄像头视频流,并用一个简单的demo实现了基于prewitt算子的边缘检测。

你可能感兴趣的:(摄像头图像获取,matlab,计算机视觉)