ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

transform

データ ストアの変換

説明

dsnew = transform(ds,@fcn) は、変換関数 fcn を使用して入力データ ストア ds を変換し、変換後のデータ ストア dsnew を返します。

dsnew = transform(ds,@fcn,'IncludeInfo',IncludeInfo) は、変換関数 fcn の代替定義を使用します。代替定義により、関数 read で返されたデータ ストアの追加情報を使用できるようになります。

すべて折りたたむ

イメージの集合用のデータ ストアを作成し、そのデータ ストア内のすべてのイメージに同じ変換を適用します。たとえば、集合内のすべてのイメージを、指定したターゲット サイズに変更します。

2 つのイメージを含む ImageDatastore を作成します。

imds = imageDatastore({'street1.jpg','peppers.png'})
imds = 
  ImageDatastore with properties:

                       Files: {
                              ' .../devel/bat/Bdoc19a/build/matlab/toolbox/matlab/demos/street1.jpg';
                              ' .../devel/bat/Bdoc19a/build/matlab/toolbox/matlab/imagesci/peppers.png'
                              }
    AlternateFileSystemRoots: {}
             ReadFailureRule: 'error'
                 MaxFailures: Inf
                    ReadSize: 1
                      Labels: {}
                     ReadFcn: @readDatastoreImage

すべてのイメージを読み取ります。データ ストアには異なるサイズのイメージが含まれていることがわかります。

img1 = read(imds); % reads the first image
img2 = read(imds); % reads the next image
whos img1 img2
  Name        Size                Bytes  Class    Attributes

  img1      480x640x3            921600  uint8              
  img2      384x512x3            589824  uint8              

データ ストア内のすべてのイメージを、指定したターゲット サイズに変換します。

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

イメージを読み取ってそのサイズを表示します。

imgReSz1 = read(imdsReSz);
imgReSz2 = read(imdsReSz);
whos imgReSz1 imgReSz2
  Name            Size                Bytes  Class    Attributes

  imgReSz1      224x224x3            150528  uint8              
  imgReSz2      224x224x3            150528  uint8              

サイズ変更後のイメージを表示します。

subplot(121); imshow(imgReSz1); axis on; title('Resized Street1.jpg');
subplot(122); imshow(imgReSz2); axis on; title('Resized peppers.png');

入力引数

すべて折りたたむ

入力データ ストア。組み込みデータ ストアの完全な一覧は、ファイル形式またはアプリケーション用のデータ ストアの選択を参照してください。カスタム データ ストアを指定することもできます。

データを変換する関数。関数ハンドルとして指定します。関数はデータを入力として受け取り、fcn に定義された変換に基づいて変換したデータを返します。

変換関数には次のシグネチャが必要であり、dataIn は、関数 read を使用して返されるデータと同じ形式でなければなりません。

function dataOut = transformFcn(dataIn)
..
end

あるいは、関数 read で返されるデータに関する追加情報を使用するように、変換関数 fcn を定義できます。この代替定義を使用するには、IncludeInfo の値を true に指定しなければなりません。この場合、変換関数には次のシグネチャが必要です。

function [dataOut,infoOut] = transformFcn(dataIn,infoIn)
..
end

例: @transformFcn

データ型: function_handle

関数 read からの情報を含めるかどうか。true または false として指定します。関数 read は、抽出されたデータに関する情報を info struct に返します。詳細については、関数 read のページを参照してください。

IncludeInfo の値を true に設定した場合は、変換関数 fcn の代替シグネチャを使用しなければなりません。

出力引数

すべて折りたたむ

変換後のデータを含む新しいデータ ストア。TransformedDatastore オブジェクトとして返されます。

R2019a で導入