Main Content

combine

複数のデータストアのデータを統合

説明

dsnew = combine(ds1,ds2,...,dsN) は、入力データストアについて関数 read が返したデータを使用し、複数のデータストアを統合して CombinedDatastore オブジェクトを作成します。

dsnew = combine(ds1,ds2,...,dsN,ReadOrder=order) は、指定された読み取り順序に基づいて複数のデータストアを統合します。読み取り順序によって、CombinedDatastore オブジェクトまたは SequentialDatastore オブジェクトのいずれが作成されるかが決まります。

すべて折りたたむ

基となるデータストアのイメージ ペア間のパリティを維持するデータストアを作成します。たとえば、2 つのイメージ データストアを個別に作成してから、2 つのイメージ データストアから対応するイメージを読み取る統合データストアを作成します。

3 つのイメージの集合を表すデータストア imds1 を作成します。

imds1 = imageDatastore({'street1.jpg','street2.jpg','peppers.png'}); 

imds1 のイメージをグレースケール イメージに変換して、2 つ目のデータストア imds2 を作成します。

imds2 = transform(imds1,@(x) im2gray(x));

imds1imds2 から統合データストアを作成します。

imdsCombined = combine(imds1,imds2);

統合データストアから最初のイメージのペアを読み取ります。この統合データストアに対する個々の読み取り処理によって、12 列の cell 配列で表されるイメージのペアが返されます。

dataOut = read(imdsCombined)
dataOut=1×2 cell array
    {480x640x3 uint8}    {480x640 uint8}

統合データストアからの最初の読み取りの出力を表示します。

imshow(imtile(dataOut));

Figure contains an axes object. The axes object contains an object of type image.

2 つのイメージ データストアから交互に読み取るデータストアを作成します。

2 つのイメージの集合を表す ImageDatastore ds1 を作成します。次に、ds1 のイメージをグレースケール イメージに変換して、2 つ目の ImageDatastore ds2 を作成します。ds1ds2 を統合して SequentialDatastore オブジェクトを作成します。

ds1 = imageDatastore(["peppers.png","street2.jpg"]); 
ds2 = transform(ds1,@(x) im2gray(x));
dsseq = combine(ds1,ds2,ReadOrder="sequential");

SequentialDatastore オブジェクトから最初の 3 つのイメージを読み取ります。この SequentialDatastore オブジェクトの読み取り処理を行うたびに、1 行 1 列の cell 配列で表される単一のイメージが返されます。

img1 = read(dsseq);
img2 = read(dsseq);
img3 = read(dsseq);

入力引数

すべて折りたたむ

統合対象のデータストア。2 つ以上の datastore オブジェクトをコンマで区切って指定します。組み込みデータストアの完全な一覧は、ファイル形式またはアプリケーション用のデータ ストアの選択を参照してください。カスタム データストアも指定できます。

データを読み取る順序。"associated" または "sequential" として指定します。

  • "associated"CombinedDatastore オブジェクトを作成します。これは、基となる各データストアからの読み取り処理の結果を水平方向に連結したものです。

  • "sequential"SequentialDatastore オブジェクトを作成します。これは、基となるデータストアから順次読み取りますが、連結を行いません。

拡張機能

バージョン履歴

R2019a で導入

すべて展開する