文档帮助中心文档
变换数据存储
dsnew =变换(ds1, ds2,…,dsN, @fcn)
dsnew =变换(ds1, ds2,…,dsN, @fcn IncludeInfo, IncludeInfo)
例子
dsnew=变换(ds1, ds2,…,dsN,@fcn)使用转换函数转换一个或多个输入数据存储fcn并返回转换后的数据存储dsnew.fcn可以放置在调用的所有输入数据存储之前或之后变换函数。
dsnew=变换(ds1, ds2,…,dsN,@fcn)
dsnew
ds1, ds2,…,dsN
@fcn
fcn
变换
dsnew=变换(ds1, ds2,…,dsN,@fcn“IncludeInfo”,IncludeInfo)使用转换函数的另一种定义fcn.方法返回的附加信息可以使用替代定义读数据存储的功能。
dsnew=变换(ds1, ds2,…,dsN,@fcn“IncludeInfo”,IncludeInfo)
IncludeInfo
读
全部折叠
为图像集合创建一个数据存储,并对数据存储中的所有图像应用相同的转换。例如,将集合中的所有图像调整为指定的目标大小。
创建一个ImageDatastore有两个图片。
ImageDatastore
imd = imageDatastore ({“street1.jpg”,“peppers.png”})
/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/demo /street1.jpg';/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/imagesci/ peps .png'}文件夹:{'/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/demos';'/mathworks/devel/bat/Bdoc21b/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 . txt . txt . 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”);
创建多个数据存储对象,并对所有数据存储应用相同的转换。例如,将多个图像组合成一个矩形平铺图像。
创建一个ImageDatastore用一个形象。
imds1 = imageDatastore ({“ngc6543a.jpg”})
imds1 = ImageDatastore属性:文件 : { ' .../ 猛击/棒/ Bdoc21b /构建/ matlab工具箱/ matlab /演示/ ngc6543a.jpg '}文件夹:{' / mathworks /猛击/棒/ Bdoc21b /构建/ 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以使其尺寸与其他图像相匹配。
imds1
tds1 = transform(imds1,imdsR,imdsG,imdsB, @(x1,x2,x3,x4) [rgb2gray(x1),x2;x3,x4]);瓦=阅读(tds1);
显示平铺图像。
imshow(瓷砖)
输入数据存储。有关内置数据存储的完整列表,请参见“文件格式”或“应用程序”选择“数据存储”.您还可以指定一个自定义数据存储。
转换数据的函数,指定为函数句柄。函数将数据作为输入,并根据定义的转换返回转换后的数据fcn.
变换函数必须有这个签名和ds1_data、ds2_data…dsN_data必须与使用读函数。
ds1_data、ds2_data…dsN_data
函数dataOut = transformFcn (ds1_data ds2_data,...dsN_data)..结束
或者,您可以定义您的转换函数fcn属性返回的数据的附加信息读函数。要使用此替代定义,必须指定IncludeInfo是真正的.在这种情况下,变换函数必须有这个签名。
真正的
函数[dataOut, infoOut] = transformFcn (ds1_data ds2_data,...dsN_data、ds1_info ds2_info…dsN_info)..结束
例子:@transformFcn
@transformFcn
数据类型:function_handle
function_handle
假
包含的信息读函数,指定为真正的或假.的读函数返回关于已提取数据的信息信息结构体。有关更多信息,请参见读功能页面。
信息
当您设置的值IncludeInfo来真正的,则必须使用转换函数的替代签名fcn.
TransformedDatastore
包含已转换数据的新数据存储,作为TransformedDatastore对象。
backgroundPool
ThreadPool
使用注意事项及限制:
在基于线程的环境中,可以使用变换仅与以下数据存储:
ImageDatastore对象
CombinedDatastore或TransformedDatastore创建的对象ImageDatastore通过使用对象结合或变换
CombinedDatastore
结合
您可以使用变换如果您有并行计算工具箱™,则可以使用其他数据存储。为此,使用进程支持的并行池而不是使用backgroundPool或ThreadPool(使用ProcessPool或ClusterPool).
ProcessPool
ClusterPool
有关更多信息,请参见在线程环境中运行MATLAB函数.
数据存储|TransformedDatastore|读|readall|重置|hasdata|预览|结合
数据存储
readall
重置
hasdata
预览
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系