主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

TransformedDatastore

기본데이터저장소를변환하는데이터저장소

설명

TransformedDatastore객체를사용하여기본데이터저장소에서읽어들데이터를변환하거나처리합니다。

생성

变换함수를사용하여TransformedDatastore객체를만들수있습니다。예를들어,dsnew = transform(ds1_data,ds2_data,…dsN_data,@fcn)은변환함수fcn을사용하여하나이상의데이터저장소ds1_data、ds2_data…dsN_data를변환하는데이터저장소를만듭니다。

속성

모두 확장

기본데이터저장소로,数据存储객체로구성된셀형배열로반환됩니다。

변환함수집합으로,함수핸들로구성된셀형배열로지정됩니다。

데이터형:细胞

함수의정보를포함합니다。논리형벡터로지정됩니다。真正的로 지정된IncludeInfo의각값에대해,변환된데이터저장소는transformSet의대응하는변환함수의대체시그니처를사용합니다。

함수는信息구조체의추출된데이터에대한정보를반환합니다。자세한내용은함수도움말페이지를참조하십시오。

데이터형:逻辑

이속성은읽기전용입니다。

쓰기가지원되는형식목록으로,字符串형으로구성된행벡터로반환됩니다。이 속성은writeall을사용하여데이터저장소에서출력파일을쓸때가능한출력형식을지정합니다。

데이터형:字符串

객체 함수

结合 여러데이터저장소의데이터결합
hasdata 데이터를읽을수있는지확
预览 데이터저장소에있는데이터의서브셋미리보기
데이터저장소의데이터읽어들이기
readall 데이터저장소의모든데이터읽기
writeall 将数据存储写入文件
重置 데이터저장소를초기상태로재설정
变换 데이터저장소변환
numpartitions 데이터저장소파티션개수
分区 데이터저장소파티셔닝
洗牌 데이터저장소의모든데이터읽기섞기
isPartitionable 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

예제

모두 축소

이미지모음을위한데이터저장소를만들고데이터저장소의모든이미지에동일한변환을적용합니다。예를들어,모음에있는모든이미지의크기를지정된대상크기로조정합니다。

두개의이미지가있는ImageDatastore를만듭니다。

imds = imageDatastore({“street1.jpg”“peppers.png”})
imds = ImageDatastore属性:Files:{'…/devel/bat/Bdoc22a/build/matlab/toolbox/matlab/demos/street1.jpg';文件夹:{'/mathworks/devel/bat/Bdoc22a/build/matlab/toolbox/matlab/ imagesci/椒椒水.png';'/mathworks/devel/bat/Bdoc22a/build/matlab/toolbox/matlab/imagesci'} AlternateFileSystemRoots: {} ReadSize: 1 Labels: {} S金宝appupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage

모든이미지를읽어들입니다。데이터저장소에서로다른크기의이미지가포함되어있음을확할수있습니다。

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

데이터저장소의모든이미지를지정된대상크기로변환합니다。

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

이미지를읽어들이고크기를@ @시합니다。

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

크기가조정된이미지를@ @시합니다。

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

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

여러数据存储객체를만들고모든데이터저장소에동일한변환을적용합니다。예를들어,여러이미지를하나의사각형타일형식이미지로결합합니다。

한개의이미지가있는ImageDatastore를만듭니다。

imds1 = imageDatastore({“ngc6543a.jpg”})
imds1 = ImageDatastore与属性:文件:{'…/devel/bat/ build/matlab/toolbox/matlab/demos/ngc6543a.jpg'}文件夹:{'/mathworks/devel/bat/Bdoc22a/build/matlab/toolbox/matlab/demos'} AlternateFileSystemRoots: {} ReadSize: 1标签:{}SupportedOutputFormats: ["png" "jpg" "jpeg" "金宝apptif" "tiff"] 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 = read(imds1);img_red = read(imdsR);img_green = read(imdsG);img_blue = read(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]);Tile = read(tds1);

타일형식이미지를@ @시합니다。

imshow(瓷砖)

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

버전 내역

R2019a에개발됨