主要内容

pixelLabelDatastore

像素标签数据的数据存储

描述

你可以使用PixelLabelDatastore对象读取像素标签数据进行语义分割。

读取像素标签数据PixelLabelDatastore,使用函数。此函数返回一个类别数组,其中包含分配给每个(j)像素位置或(jk)体素定位。

创建

创建一个PixelLabelDatastore对象使用pixelLabelDatastore函数描述如下。一旦创建了对象,就可以使用访问和管理数据的函数。可以使用点表示法修改ReadSize而且ReadFcn属性。

描述

例子

pxds = pixelLabelDatastore(gTruth创建一个PixelLabelDatastore对象的groundTruth对象的数组groundTruth对象。

pxds = pixelLabelDatastore(位置一会pixelLabelIDs创建一个PixelLabelDatastore属性指定的文件夹或文件中存储像素标签数据的图像文件位置.该函数使用像素id创建对象,像素id将图像像素标签值映射到类名。

pxds = pixelLabelDatastore(___、名称、值)创建一个PixelLabelDatastore对象的名称-值对参数来设置一个或两个ReadSizeAlternateFileSystemRoots属性。对于图像文件输入,还可以使用名称-值对参数来设置ReadFcn属性或指定选项关于要包含在数据存储中的文件。可以指定多个名称-值对。将每个属性名用引号括起来。

例如,pixelLabelDatastore (loc,名称、id ReadSize, 8日FileExtensions, png)创建一个像素标签数据存储,其中仅包括PNG图像,并且在每次调用函数。

输入参数

全部展开

地面真相数据,指定为agroundTruth对象的数组groundTruth对象。每一个groundTruth对象包含有关数据源、标签定义列表以及一组基本真实值标签的所有标记标签的信息。

文件夹或图像文件名,指定为字符向量、字符串数组或字符向量的单元格数组。图像必须包含uint8数据。

位置 描述
字符向量,字符串数组 文件夹名称。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。数据存储只包含支持的文件格式的图像,而忽略任何其他格式。方法查看支持的文件格式列表imformats函数。
字符向量的单元格数组 多个镜像的文件名。

pixelLabelDatastore对象中展开文件名并存储完整的文件路径文件财产。

指定时可以使用通配符(*)位置.该字符表示所有匹配的文件或匹配文件夹中的所有文件都包含在数据存储中。

如果文件不在当前文件夹中,则必须包含完整路径或相对路径。

如果文件在本地不可用,则文件或文件夹的完整路径必须是国际化资源标识符(IRI),例如hdfs: / /主机名portnumber/path_to_file.有关使用a的信息数据存储使用Amazon S3™和HDFS™,参见使用远程数据

例子:“file1.jpg”

例子:“. . / dir /数据/ file1.png”

例子:{“C: \ dir \ data \ file1.tif”,“C: \ dir \ data \ file2.tif”}

例子:“C: \ dir \ data \ * . jpg”

数据类型:字符|细胞

类名,指定为字符串或字符向量的单元格数组。pixelLabelDatastore名称转换为单元格数组,并将名称存储在一会财产。

例子:["天空" "草地" "建筑物" "人行道"]

要将像素标签映射到的id一会,指定为一个向量,an的单元格数组,或的单元格数组3矩阵。取值范围为[0,255]的整数。-by-3矩阵仅支持RGB图像。

格式 描述
向量 vector的长度必须等于类名的数量。值必须唯一。
3矩阵 对应于类名的数量。每行包含一个3元素向量,表示与每个类名相关联的RGB像素值。向量必须是唯一的。将此格式用于存储为RGB图像的像素标签数据。

列向量的单元格数组

单元格阵列3矩阵

使用单元格数组将多个像素标签id映射到一个类名。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“IncludeSubfolders”,真的

包含子文件夹,指定为逗号分隔的对,由“IncludeSubfolders”而且0),或真正的1).指定真正的在每个文件夹或中包含所有文件和子文件夹只包括每个文件夹中的文件。

IncludeSubfolders参数在指定基本真实值数据时不支持gTruth

要包含在数据存储中的文件的文件扩展名,指定为逗号分隔的对,由“FileExtensions”字符向量,字符向量的单元格数组,字符串标量,或者字符串数组。默认情况下,数据存储包括具有所有扩展名的文件imformats函数。

FileExtensions参数在指定基本真实值数据时不支持gTruth

例子:["png" "gif" "bmp"]

属性

全部展开

此属性是只读的。

包含在数据存储中的文件,指定为字符向量或字符向量的单元格数组。每个字符向量都是一个文件的完整路径。当你创建PixelLabelDatastore对象时,使用位置参数设置此属性。

此属性是只读的。

类名,指定为字符向量的单元格数组。

方法每次调用时读取的最大映像文件数函数,指定为正整数。

可选文件系统根路径,指定为由“AlternateFileSystemRoots”一个字符串向量或者单元格数组。使用“AlternateFileSystemRoots”在本地机器上创建数据存储,但需要在另一台机器(可能是不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在您的本地机器上,不同平台云或集群机器上可用的数据副本,您必须使用“AlternateFileSystemRoots”关联根路径。

  • 若要关联一组等价的根路径,请指定“AlternateFileSystemRoots”作为一个字符串向量。例如,

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 若要关联多个与数据存储等效的根路径集,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:

    • 指定“AlternateFileSystemRoots”作为字符串向量的单元格数组。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 另外,指定“AlternateFileSystemRoots”作为字符向量的单元格数组的单元格数组。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

的价值“AlternateFileSystemRoots”必须满足这些条件:

  • 包含一行或多行,其中每行指定一组等效的根路径。

  • 每行指定多个根路径,每个根路径至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关更多信息,请参见为不同机器或集群上的处理设置数据存储

例子:[" Z: \数据集”、“/ mynetwork /数据集”)

数据类型:字符串|细胞

读取像素标记图像数据的函数,指定为函数句柄。自定义读取函数必须以图像文件名作为输入,然后将对应的像素标记数据输出为数据类型的分类矩阵、逻辑矩阵或数值矩阵uint8.例如,如果customreader是指定函数读取图像数据,那么它必须具有类似于下面的签名:

函数C = customreader(文件名)...结束
如果read函数有多个输出参数,则只使用第一个输出参数。其余的都被忽略了。

ReadFcn属性在指定地面真实值数据时不支持gTruth

例子:@customreader

对象的功能

结合 组合来自多个数据存储的数据
countEachLabel 计数出现像素或框标签
hasdata 确定是否可以从数据存储中读取数据
numpartitions 数据存储的分区数
分区 划分标签数据存储
预览 读取数据存储中的第一行数据
从数据存储中读取数据
readall 读取数据存储中的所有数据
readimage 读取指定像素标签数据文件
重置 将数据存储重置为初始状态
洗牌 返回打乱的数据存储版本
变换 变换数据存储
子集 创建数据存储或文件集的子集
isPartitionable 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

在图像上叠加像素标签数据。

设置图像的位置和像素标签数据。

dataDir = fullfile(toolboxdir(“愿景”),“visiondata”);imDir = fullfile(dataDir,“建筑”);pxDir = fullfile(dataDir,“buildingPixelLabels”);

创建映像数据存储。

imds = imageDatastore(imDir);

创建一个像素标签数据存储。

classNames = [“天空”“草”“建筑”“人行道”];pixelLabelID = [1 2 3 4];pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID);

读取图像和像素标签数据。阅读(pxds)返回一个分类矩阵,C.元素C(j)为分配给位置为l的像素的分类标签(j).

I = read(imds);C = read(pxds);

中显示标签类别C

类别(C {1})
ans =4 x1细胞{'天空'}{'草地'}{'建筑物'}{'人行道'}

覆盖并显示图像上的像素标签数据。

B = labeloverlay(I,C{1});图imshow (B)

图中包含一个轴对象。axis对象包含一个image类型的对象。

指定3-D体积和像素标签数据的位置。这些数据是大脑的标记3-D核磁共振扫描。

dataDir = fullfile(toolboxdir(“图片”),“imdata”);imDir = fullfile(dataDir,“BrainMRILabeled”“图片”);pxDir = fullfile(dataDir,“BrainMRILabeled”“标签”);

指定自定义ReadFcn。这个例子指定了一个函数samplePXDSMatReader(在示例末尾定义)从. mat图像文件中读取3-D图像数据。

matReader = @samplePXDSMatReader;

创建映像数据存储。

imds = imageDatastore(imDir,“FileExtensions”“.mat”“ReadFcn”, matReader);

创建一个像素标签数据存储。

classNames = [“水肿”“nonEnhancingTumor”“enhancingTumour”];pixelLabelID = [1 2 3];pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID,“FileExtensions”“.mat”“ReadFcn”, matReader);

读取体积和像素标签数据。l是一个分类矩阵,在哪里L (i, j, k)分类标签被分配给了吗V (i, j, k)

V = read(imds);L = read(pxds);

显示标签类别。

类别(L {1})
ans =3×1细胞{'水肿'}{'nonEnhancingTumor'} {' enhancingtumor '}

可视化结果使用labelvolshow

h = labelvolshow(L{1},V);

下面的例子定义了一个helper函数,samplePXDSMatReader,从图像文件中读取三维图像数据。这个函数加载一个. mat文件并返回保存在该文件中的第一个变量。

函数data = samplePXDSMatReader(文件名)inp = load(文件名);F = fields(inp);数据= inp.(f{1});结束

提示

  • 一个pixelLabelDatastore按字典顺序存储文件。例如,如果您有十二个文件命名为“file1.jpg”“file2.jpg”,…,“file11.jpg”,“file12.jpg”,则文件的存储顺序为:

    “file1.jpg”“file10.jpg”“file11.jpg”“file12.jpg”“file2.jpg”“file3.jpg”...“file9.jpg”

    相反,imageDatastore按照文件添加到数据存储区的顺序存储文件。如果同时读取ground truth图像和像素标签数据,则可能会遇到图像和标签之间不匹配的情况。如果出现这种情况,则重命名像素标签文件,使它们具有正确的顺序。例如,重命名“file1.jpg”,…,“file9.jpg”“file01.jpg”、……“file09.jpg”

  • 提取语义分割数据groundTruth对象生成的贴标签机视频应用程序,使用pixelLabelTrainingData函数。

版本历史

在R2017b中引入

Baidu
map