主要内容

从网络摄像头获取图像

创建一个网络摄像头对象

要从网络摄像头获取图像,首先要创建一个网络摄像头对象。使用网络摄像头函数创建对象。你可以用三种方式来使用它:

  • 不使用输入参数连接到第一个或唯一的摄像机

  • 通过在输入参数中使用摄像头名称(作为字符向量)指定摄像机名称

  • 使用索引号作为输入参数,按列表顺序指定摄像机

请注意

在桌面版本的MATLAB®,网络摄像头支持可金宝app通过USB网络摄像金宝app头的MATLAB支持包.说明,请参阅安装USB摄像头的MATLAB支持包金宝app.也支持网络摄像头金宝appMATLAB在线™.有关更多信息,请参见在线支持MAT金宝appLAB中的网络摄像头

查找您的相机的名称使用webcamlist函数。运行webcamlist首先要确保MATLAB可以发现你的相机。在本例中,它发现了戴尔内置的网络摄像头®电脑和一台联网的罗技®摄像头。

webcamlist
ans = 2×1 cell array {'Logitech Webcam 250'} {'Dell Camera C250'}

没有输入参数

如果你使用网络摄像头函数,它创建对象并连接到返回的第一个摄像机webcamlist.在本例中,它使用罗技相机,因为它首先出现在列表中。

%使用cam作为对象的名称。凸轮=网络摄像头
cam =带有属性的webcam:名称:“Logitech webcam 250”分辨率:“640x480”可用分辨率:{1x11 cell}曝光:-4增益:253饱和度:32 Wh金宝搏官方网站iteBalance: 8240 ExposureMode:“自动”清晰度:48亮度:128背光补偿:1对比度:32

当您创建网络摄像头对象,它连接到摄像机,建立独占访问,并开始流数据。然后,您可以预览数据并使用快照功能,请参见获取网络摄像头图像。

请注意

中唯一可用的属性MATLAB在线的名字AvailableRe金宝搏官方网站solutions,决议.默认的摄像头分辨率是唯一支持的分辨率金宝appMATLAB在线R2018a版本。

索引作为输入参数

如果你使用网络摄像头函数的输入参数为索引,它创建与该索引对应的对象并连接到该摄像机。如果你只有一个相机,你不需要使用索引。你可以使用网络摄像头函数没有输入参数,它创建带有单个连接摄像机的对象。当你有多个相机时,这个索引很有用。

索引对应于单元格数组中摄像机的顺序webcamlist当你有多个摄像头连接时。在本例中,设备1是罗技的相机和设备吗2就是内置的戴尔网络摄像头。

webcamlist
ans = 2×1 cell array {'Logitech Webcam 250'} {'Dell Camera C250'}
%使用cam作为对象的名称。使用2连接戴尔摄像头。凸轮=摄像头(2)
cam = webcam与属性:名称:'Dell Camera C250'分辨率:'320x240'可用分辨率:('320x240' '160x120' '80x60')亮度:金宝搏官方网站128对比度:32增益:0

相机名称作为输入参数

如果你使用网络摄像头函数以摄像机的名称(作为字符向量)作为输入参数,它创建对象并以该名称连接到摄像机。控件显示的确切名称webcamlist功能,如“250年罗技摄像头”,或者使用该品牌的缩写,如相机品牌。在这种情况下,您可以简单地使用罗技的连接罗技网络摄像头。

%使用cam作为对象的名称。使用“罗技”连接罗技摄像头。凸轮=摄像头(罗技的
cam =带有属性的webcam:名称:“Logitech webcam 250”分辨率:“640x480”可用分辨率:{1x11 cell}曝光:-4增益:253饱和度:32 Wh金宝搏官方网站iteBalance: 8240 ExposureMode:“自动”清晰度:48亮度:128背光补偿:1对比度:32

当您创建网络摄像头对象,它连接到摄像机,建立独占访问,并开始流数据。然后,您可以预览数据并使用快照功能,请参见获取网络摄像头图像。

获取摄像头图像

这个例子描述了从网络摄像机获取图像并将其带入MATLAB的典型工作流程。

  1. 找到连接到您的系统的摄像机,并确保MATLAB可以检测到它们。

    webcamlist
    ans = 2×1 cell array {'Logitech Webcam 250'} {'Dell Camera C250'}

    输出是连接到您的系统的任何网络摄像头的列表。在本例中,它在戴尔电脑中发现了一个内置的网络摄像头,以及一个连接的罗技网络摄像头。

  2. 创建一个网络摄像头对象被称为凸轮,使用罗技相机。

    凸轮=摄像头(罗技的
    cam =带有属性的webcam:名称:“Logitech webcam 250”分辨率:“640x480”可用分辨率:{1x11 cell}曝光:-4增益:253饱和度:32 Wh金宝搏官方网站iteBalance: 8240 ExposureMode:“自动”清晰度:48亮度:128背光补偿:1对比度:32
  3. 预览现场视频流从网络摄像头。的值决定预览视频的大小决议财产。预览窗口显示来自网络摄像头的实时RGB图像。预览窗口还显示相机名称、分辨率、帧速率和时间戳(以秒为单位)。时间戳是自对象创建以来经过的时间。要预览图像,调用预览函数的对象名,它是凸轮在这个例子中。

    预览(凸轮)

    预览是动态更新的,所以如果你在预览时改变了一个属性,图像也会随之改变以反映属性的改变。

  4. 设置需要更改的任何属性。例如,您可能想要更改分辨率。

    首先你可以看到你的相机支持的分辨率使用金宝搏官方网站金宝appAvailableRe金宝搏官方网站solutions财产。

    凸轮。AvailableRe金宝搏官方网站solutions
    ans = Columns 1 to 6 '640x480' '160x90' '160x100' '160x120' '176x144' '320x180'

    改变分辨率。

    凸轮。分辨率=“320 x240”

    有关可以为网络摄像头设置哪些属性以及如何设置的信息,请参见设置摄像头采集属性

  5. 控件可以在任何时候关闭预览closePreview函数。

    closePreview(凸轮)

    如果没有显式关闭预览,则在清除网络摄像头对象。

  6. 从相机获取单一图像使用快照函数,并将其赋值给变量img

    img =快照(cam);
  7. 显示获取的图像。

    imshow (img)

    你也可以用the图像函数显示获取的图像。

    图像(img)
  8. 通过清理物体来清理。

    清楚(“凸轮”);

有关如何在循环中获取图像的示例,请参见循环获取网络摄像头图像.有关网络摄像头支持的功能列表,请参见金宝app金宝app摄像头支持的功能

另请参阅

||||

相关的话题