matlab在图像上标点(matlab函数图像标注),本文通过数据整理汇集了matlab在图像上标点(matlab函数图像标注)相关信息,下面一起看看。

数字图像的分类会涉及到一些主要的图像类型。本文将介绍这些主要的图像类型是如何在MATLAB中存储和表示的,包括亮度图像、RGB图像、索引图像、二值图像和多帧图像。

亮度是图像的灰度。MATLAB二维矩阵用于存储亮度图像,矩阵中的每个元素直接代表一个像素的亮度(灰度)信息。例如,200300像素的图像存储为200行300列的矩阵。您可以通过选择第节中介绍的矩阵元素(或子块)来选择图像中的像素或区域。

如果矩阵元素的类型为双精度,则元素的取值范围为0到1;如果是8位无符号整数,取值范围是0到255。0代表黑色,1(或255)代表最大亮度(通常为白色)。

图1示出了使用双精度矩阵来存储亮度图像的例子。

图1亮度图像在MATLAB中的表示

RGB图像使用三个一组的数据来表示每个像素的颜色,即红色、绿色和蓝色分量。在MATLAB中,RGB图像存储在mn3的三维数组中。对于图像中的每个像素,存储的3个颜色分量合成该像素的最终颜色。比如RGB图像I中一个11行40列的像素的RGB值是I(11,40,1:3)或者I(11,40,),这个像素的红色分量是I(11,40,1),蓝色分量是I(11,40,3)。并且I(:1)表示整个红色分量图像。

RGB图像也可以由双精度数组或8位无符号整数数组存储。图2显示了使用双精度数组存储RGB图像的示例。

图2 MATLAB中RGB图像的表示

索引图像通常包含两个数组,一个图像数据矩阵和一个色彩映射表索引表。对应于图像中的每个像素,图像数据阵列包含指向颜色索引表的索引值。

颜色索引表是一个m3的双精度矩阵,每行指定一种颜色的三个RGB分量,即color=[R G B]。其中r、g和b是实数的双精度数,取值范围为0到1。0表示全黑,1表示最大亮度。图1.10给出了一个索引图像的例子。注意,图像中的每个像素都用一个整数表示,这意味着颜色索引表中对应颜色的索引。

图像数据矩阵和颜色索引表之间的关系取决于存储在图像数据矩阵中的数据类型是双精度类型还是8位无符号整数。

如果图像数据以双精度类型存储,则像素数据1表示颜色索引表中的第一行,像素数据2表示颜色索引表中的第二行,依此类推。但是,如果图像数据以8位无符号整数存储,则存在额外的偏移量-1。像素数据0表示颜色索引表中的第一行,1表示索引表中的第二行,依此类推。

以8位模式存储的图像可以支持256种颜色(或256种灰度)。在图3中,数据矩阵是双精度类型,所以没有偏移。数据5表示颜色表中的第五种颜色。

图3索引图像在MATLAB中的表示方法

在二进制图像中,像素的颜色只有两种可能值:黑色或白色。MATLAB将二值图像存储为二维矩阵,每个元素的值只有0和1,0代表黑色,1代表白色。

二值图像可以看作是只有黑白两种颜色的特殊亮度图像。当然,二值图像也可以看作是颜色索引表中只有两种颜色(黑白)的索引图像。

在MATLAB中,uint8逻辑阵列用于存储二值图像。逻辑标志表示数据的有效范围是0到1。如果没有设置逻辑标志,有效范围是0到255。

二值图像的表示方法如图4所示。

对于某些应用,可能需要处理在时间或视角上连续排列的多个图像,这被称为多帧图像(所谓的 框架 是图像动画中单个图像的最小单位)。例如MRI数据或视频剪辑。Matlab提供了在同一矩阵中存储多幅图像的方法,实际上是在图像矩阵中增加了一个维度来表示时间或视角信息。例如,具有五个400300像素的连续RGB图像的多帧连续段存储在40030035矩阵中,而一组相同大小的灰度图像可以存储在40030015矩阵中。

如果多帧图像存储为索引图像,则只有图像数据矩阵存储为多帧,颜色索引表只能共享。因此,在多帧索引图像中,所有索引图像共享一个颜色索引表,并且只能使用相同的颜色组合。

图4二值图像在4MATLAB中的表示方法

cat功能

cat函数可以连接指定维度中的数组,它的调用方式如下。

或者

该函数连接第二维度中第2到第n个参数提供的数组。因此,为了构建由五个RGB图像组成的多帧图像组,使用以下命令。

选择存储方法时的限制

图像处理工具箱中的一些函数只能处理图像矩阵的前两维或三维。当然,它们也可以用于处理RGB图像或4维或5维的连续图像序列,但需要对每一帧分别处理满足要求的亮度/二值/索引/RGB图像。例如,要显示ANIM的第三帧图像,需要使用下面的方法。

函数imshow用于显示图像。

注意

MATLAB默认将大部分数据存储为双精度类型(64位浮点数),以保证运算的准确性。对于图像,当图像很大时,这种数据类型可能不理想。例如,1000像素的正方形图像有100万个像素。如果每个像素由64位二进制数表示,则总共需要大约8MB的存储空间。

为了减少图像信息的空间开销,可以将图像信息保存为8位无符号整数(uint8)或16位无符号整数(uint16)的数组,只需要双精度浮点数空间的1/8或1/4。以上三种存储类型中,双精度和uint8使用最多,uint16和uint8差不多。

本文摘自《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》。

内容简介

更多matlab在图像上标点(matlab函数图像标注)相关信息请关注本站。