创建一个 ImageDatastore 对象,并根据每个图像所在文件夹的名称为其添加标签。生成的标签名称为 demos 和 imagesci。
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});
imds.Labels
ans =
demos
demos
demos
demos
demos
demos
imagesci
imagesci
用 imds 中的文件创建两个新的数据存储,其中只包括带有 demos 标签的文件。第一个数据存储 imds60 包含前 60% 的带有 demos 标签的文件,第二个数据存储 imds40 包含带有 demos 标签的其余 40% 的文件。
[imds60, imds40] = splitEachLabel(imds,0.6,'Include','demos')
imds60 =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
' ...\matlab\toolbox\matlab\demos\example.tif';
' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
... and 1 more
}
Labels: [demos; demos; demos ... and 1 more categorical]
ReadFcn: @readDatastoreImage
imds40 =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\street1.jpg';
' ...\matlab\toolbox\matlab\demos\street2.jpg'
}
Labels: [demos; demos]
ReadFcn: @readDatastoreImage
同样,可以通过排除 imagesci 标签,只拆分 demos 标签。
[imds60, imds40] = splitEachLabel(imds,0.6,'Exclude','imagesci')
imds60 =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
' ...\matlab\toolbox\matlab\demos\example.tif';
' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
... and 1 more
}
Labels: [demos; demos; demos ... and 1 more categorical]
ReadFcn: @readDatastoreImage
imds40 =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\street1.jpg';
' ...\matlab\toolbox\matlab\demos\street2.jpg'
}
Labels: [demos; demos]
ReadFcn: @readDatastoreImage