主要内容

TransformedDatastore

转换底层数据存储的数据存储

描述

使用一个TransformedDatastore对象转换或处理从底层数据存储读取的数据。

创建

您可以创建TransformedDatastore对象使用变换函数。例如,dsnew =变换(ds1_data、ds2_data…dsN_data @fcn)创建用于转换一个或多个数据存储的数据存储ds1_data、ds2_data…dsN_data利用变换函数fcn

属性

全部展开

底层数据存储,作为数据存储对象的单元格数组返回。

转换函数集,指定为函数句柄的单元格数组。

数据类型:细胞

包含的信息函数,指定为逻辑向量。对于每个值IncludeInfo这是真正的中对应转换函数的替代签名transformSet

函数返回关于已提取数据的信息信息结构体。有关更多信息,请参见功能页面。

数据类型:逻辑

此属性是只读的。

支持写入的格式列表,作为字符串的金宝app行向量返回。此属性指定使用时可能的输出格式writeall从数据存储写入输出文件。

数据类型:字符串

对象的功能

结合 合并来自多个数据存储的数据
hasdata 确定是否可以读取数据
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 读取数据存储中的所有数据
writeall 将数据存储写入文件
重置 将数据存储重置为初始状态
变换 变换数据存储
numpartitions 数据存储分区数
分区 分区数据存储
洗牌 洗牌数据存储中的所有数据
isPartitionable 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

为图像集合创建一个数据存储,并对数据存储中的所有图像应用相同的转换。例如,将集合中的所有图像调整为指定的目标大小。

创建一个ImageDatastore有两个图片。

imd = imageDatastore ({“street1.jpg”“peppers.png”})
/devel/bat/Bdoc21a/build/matlab/toolbox/matlab/demo /street1.jpg';/devel/bat/Bdoc21a/build/matlab/toolbox/matlab/imagesci/ peps .png'}文件夹:{'/mathworks/devel/bat/Bdoc21a/build/matlab/toolbox/matlab/demos';'/mathworks/devel/bat/Bdoc21a/build/matlab/toolbox/matlab/imagesci'} alteratefilesystemroots: {} ReadSize: 1标签:{}Supported金宝appOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage . txt . txt . txt . txt . txt . txt . txt

阅读所有图片。注意,数据存储包含不同大小的图像。

img1 =阅读(imd);%读取第一个映像img2 =阅读(imd);%读取下一个图像img1img2
名称大小字节类属性img1 480x640x3 921600 uint8 img2 384x512x3 589824 uint8

将数据存储中的所有图像转换为指定的目标大小。

targetSize = [224224];imdsReSz = transform(imds,@(x) imresize(x,targetSize));

阅读图像和显示他们的大小。

imgReSz1 =阅读(imdsReSz);imgReSz2 =阅读(imdsReSz);谁imgReSz1imgReSz2
名称大小字节类属性imgReSz1 224x224x3 150528 uint8 imgReSz2 224x224x3 150528 uint8

显示调整大小的图像。

次要情节(121);imshow (imgReSz1);轴;标题(“调整大小Street1.jpg”);次要情节(122);imshow (imgReSz2);轴;标题(“调整大小peppers.png”);

图中包含2个轴。标题为Resized Street1.jpg的坐标轴1包含一个类型为image的对象。标题为Resized peppers.png的Axes 2包含一个类型为image的对象。

创建多个数据存储对象,并对所有数据存储应用相同的转换。例如,将多个图像组合成一个矩形平铺图像。

创建一个ImageDatastore用一个形象。

imds1 = imageDatastore ({“ngc6543a.jpg”})
imds1 = ImageDatastore属性:文件 : { ' .../ 猛击/棒/ Bdoc21a /构建/ matlab工具箱/ matlab /演示/ ngc6543a.jpg '}文件夹:{' / mathworks /猛击/棒/ Bdoc21a /构建/ matlab工具箱/ matlab /演示'}AlternateFileSystemRoots: {} ReadSize: 1标签:{}SupportedOutputFormats:[“png”“jpg”“jpeg”“tif”“tiff金宝app”]DefaultOutputFormat:“png”ReadFcn:@readDatastoreImage

将图像读入工作区,从原始图像中的每个颜色通道创建一个图像文件。

rgbImage = imread (“ngc6543a.jpg”);imwrite (rgbImage (:,: 1),“nebula_red.jpg”);imwrite (rgbImage (:,:, 2),“nebula_green.jpg”);imwrite (rgbImage (:: 3),“nebula_blue.jpg”);

创建一个ImageDatastore对象为每个单通道图像。

imdsR = imageDatastore ({“nebula_red.jpg”});imdsG = imageDatastore ({“nebula_green.jpg”});imdsB = imageDatastore ({“nebula_blue.jpg”});

读取存储在每个数据存储中的映像并显示它们的大小。

imOriginal =阅读(imds1);img_red =阅读(imdsR);img_green =阅读(imdsG);img_blue =阅读(imdsB);谁img1img_redimg_greenimg_blue
名称大小字节类属性img_blue 650x600 390000 uint8 img_green 650x600 390000 uint8 img_red 650x600 390000 uint8

通过将所有图像合并到一个矩形平铺图像,转换所有数据存储。转换彩色图像imds1以使其尺寸与其他图像相匹配。

tds1 = transform(imds1,imdsR,imdsG,imdsB, @(x1,x2,x3,x4) [rgb2gray(x1),x2;x3,x4]);瓦=阅读(tds1);

显示平铺图像。

imshow(瓷砖)

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

介绍了R2019a