本文档中的插图将视频流和内存缓冲区的内容显示为单个帧的序列。实际上,每个帧都是多维数组。有关使用多维数组的更多信息,请参阅多维数组. 下图说明了单个帧的格式。
单个帧的格式
以下部分描述工具箱如何
本节还介绍了几种方法查看采集的图像数据.
图像采集设备所使用的视频格式是决定每个图像帧的宽度、高度和频带数量的主要因素。图像采集设备通常支持多种视频格式。金宝app在创建视频输入对象时选择视频格式(见指定视频格式).视频输入对象将视频格式存储在VideoFormat
财产。
视频输入对象将视频分辨率存储在视频分辨率
财产。
每个图像帧都是三维的;然而,视频格式决定了第三维的频带数量。对于彩色视频格式,例如RGB,每个图像帧有三个波段:分别代表红色、绿色和蓝色数据。其他视频格式,如灰度RS170标准,只有一个波段。视频输入对象将第三维的大小存储在NumberOfBands
财产。
请注意
由于设备通常用宽乘高表示视频分辨率,工具箱使用此约定视频分辨率
财产。但是,当数据进入MATLAB时®在工作空间中,图像帧尺寸按高度和宽度的相反顺序列出,因为MATLAB将矩阵尺寸表示为逐行逐列。
当您在捕获的图像中指定感兴趣的区域(ROI)时,ROI的维度决定了返回的图像帧的维度。的视频分辨率
属性指定设备提供的图像数据的尺寸;的ROIPosition
属性指定记录的图像帧的尺寸。看到ROIPosition
属性参考页以获得更多信息。
下面的示例说明了视频格式如何影响返回的图像帧的大小。
选择一种视频格式-使用imaqhwinfo
函数可查看图像采集设备支持的视频格式列表。此示例显示Matrox支持的视频格式金宝app®Orion frame grabber。格式为行业标准,如RS170、NTSC和PAL。这些标准定义了图像分辨率。
信息= imaqhwinfo(“matrox”);info.DeviceInfo.金宝appSupportedFormats ans = column 1 to 4 'M_RS170' M_RS170_VIA_RGB' M_CCIR' M_CCIR_VIA_RGB' Columns 5 to 8 'M_NTSC' M_NTSC_RGB' M_NTSC_YC' M_PAL' Columns 9 to 10 'M_PAL_RGB' M_PAL_YC' column 9 to 10 'M_PAL_RGB' M_PAL_YC'
创建一个图像采集对象-此示例使用默认视频格式RS170为Matrox图像采集设备创建视频输入对象。若要在系统上运行此示例,请使用imaqhwinfo
函数获取图像采集设备的对象构造函数,并将该语法替换为以下代码。
vid = videoinput (' matrox ', 1);
查看视频格式和视频分辨率属性-工具箱使用默认视频格式创建对象。这种格式定义了视频分辨率。
vid.VideoFormat ans=M_RS170 VideoResolution ans=[640 480]
将一个单一的框架带入工作区-打电话给获取快照
函数将框架带入工作区。
帧=获取快照(vid);
返回数据的尺寸反映了图像分辨率和NumberOfBands
财产。
从视频。NumberOfBands = 1大小(帧)ans = 480 640
启动图像采集对象-打电话给开始
函数启动图像采集对象。
开始(vid)
对象执行一个立即触发器并开始获取数据帧。
将多个帧带入工作区-打电话给获取数据
函数将多个图像帧带入MATLAB工作区。
数据=获取数据(vid,10);
的获取数据
函数将10帧数据带入工作区。请注意,返回的数据是一个四维数组:每个帧是三维的,而n框架由第四维度表示。
尺寸(数据)ans=480 640 110
清理-当不再需要图像采集对象时,请始终从内存中删除图像采集对象以及引用它们的变量。
删除(vid)清除vid
默认情况下,工具箱返回图像采集设备使用的数据类型中的图像帧。如果没有与对象的本机数据类型匹配的MATLAB数据类型,获取数据
选择保持数值精度的MATLAB数据类型。例如,在RGB 555格式中,每个颜色分量以5位表示。获取数据
将每种颜色返回为uint8
价值。
您可以指定所需的数据类型获取数据
用于返回的数据。例如,您可以指定它获取数据
返回图像帧作为类的数组双
.要查看所支持的所有数据类型的列表,请参见金宝app获取数据
参考页。
下面的示例演示了返回的图像数据的数据类型。
创建一个图像采集对象-这个示例为matrix图像采集设备创建一个视频输入对象。要在您的系统上运行此示例,请使用imaqhwinfo
函数获取图像采集设备的对象构造函数,并将该语法替换为以下代码。
vid = videoinput (' matrox ', 1);
将一个单一的框架带入工作区-打电话给获取快照
函数将框架带入工作区。
帧=获取快照(vid);
查看返回数据的类-使用类
函数确定用于返回图像数据的数据类型。
Class (frame) ans = uint8
清理-当不再需要图像采集对象时,请始终从内存中删除图像采集对象以及引用它们的变量。
删除(vid)清除vid
将数据带到MATLAB工作区后,可以像查看MATLAB中的任何其他图像一样查看数据。
图像采集工具箱™ 软件包括一个功能,图像内容
,可用于查看单个MATLAB图像对象中多帧图像数组的所有帧。图像内容
排列框架,使它们大致形成一个正方形。图像内容
可用于直观地比较多个帧。
MATLAB包括两个函数,图像
和显示亮度图像
,在图形窗口中显示图像。这两个函数都创建一个MATLAB图像对象来显示帧。您可以使用图像对象属性来控制显示的各个方面显示亮度图像
函数自动缩放输入数据。
图像处理工具箱™ 软件包括一个称为imshow
.就像图像
和显示亮度图像
,此函数创建一个MATLAB图像对象。然而,imshow
还自动设置各种图像对象的属性,以优化显示。