Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

groundTruthDataSource

グラウンド トゥルース データ ソースを格納するオブジェクト

説明

groundTruthDataSource オブジェクトは、グラウンド トゥルース データのソースを定義します。このオブジェクトを使用して、groundTruth オブジェクトのデータ ソースを指定します。データ ソースにラベルを付けるには、groundTruthDataSource オブジェクトをラベル付けアプリに読み込みます。

  • イメージ ラベラーは、イメージ コレクションのデータ ソースをサポートします。

  • ビデオ ラベラーは、ビデオおよびイメージ シーケンスのデータ ソースをサポートします。このアプリはカスタム データ ソースもサポートします。

作成

説明

イメージ データストアのソース

gtSource = groundTruthDataSource(imds) は、imds によって指定された imageDatastore のグラウンド トゥルース データ ソース オブジェクトを返します。

イメージ コレクションのソース

gtSource = groundTruthDataSource(imageFiles) は、imageFiles によって指定されたイメージ コレクションのグラウンド トゥルース データ ソース オブジェクトを返します。イメージは imread で読み取り可能なファイル形式でなければなりません。

ビデオ ファイルのソース

gtSource = groundTruthDataSource(videoName) は、videoName によって指定されたビデオ ファイルのグラウンド トゥルース データ ソース オブジェクトを返します。ビデオは VideoReader で読み取り可能なファイル形式でなければなりません。

イメージのシーケンスであるビデオのソース

gtSource = groundTruthDataSource(imageSeqFolder) は、imageSeqFolder によって指定されたフォルダー内に配置されたイメージ シーケンスのグラウンド トゥルース データ ソース オブジェクトを返します。

gtSource = groundTruthDataSource(imageSeqFolder,timestamps) は、指定されたフォルダーに含まれている各イメージの対応するタイムスタンプをもつ、イメージ シーケンスのグラウンド トゥルース データ ソース オブジェクトを返します。timestampsTimeStamps プロパティを設定します。

カスタム データのソース

gtSource = groundTruthDataSource(sourceName,readerFcn,timestamps) は、カスタム リーダー関数ハンドル readerFcn を使用してグラウンド トゥルース データ ソース オブジェクトを返します。sourceNameSource プロパティを設定し、timestampsTimeStamps プロパティを設定します。カスタム リーダー関数は、duration ベクトル timestamps で指定された現在のタイムスタンプに対応する sourceName からイメージを読み込みます。

入力引数

すべて展開する

イメージ データストア。imageDatastore オブジェクトとして指定します。

イメージ ファイルの名前。string 配列または文字ベクトルの cell 配列として指定します。イメージは imread で読み取り可能なファイル形式でなければなりません。サポートされているイメージ ファイル形式の一覧については、imformats を参照してください。

ビデオ ファイルの名前。string スカラーまたは文字ベクトルとして指定します。ビデオは VideoReader で読み取り可能なファイル形式でなければなりません。サポートされているビデオ ファイル形式の一覧については、VideoReader.getFileFormats を参照してください。ビデオ形式がサポートされていない場合は、カスタム リーダー関数 readerFcn を指定します。

イメージ シーケンスのフォルダー。string スカラーまたは文字ベクトルとして指定します。イメージ ファイル名の拡張子は imformats でサポートされていなければなりません。ビデオ形式がサポートされていない場合は、カスタム リーダー関数 readerFcn を指定します。

イメージは dir コマンドによって返される順に読み込まれます。

カスタム リーダー関数。関数ハンドルとして指定します。カスタム リーダー関数は、以下の構文を使用して、指定されたタイムスタンプでソースからイメージを読み込まなければなりません。

outputImage = readerFcn(sourceName,currentTimestamp)
  • readerFcn は、カスタム リーダー関数の名前です。

  • sourceName は、データ ソースの名前です。

  • currentTimestamp は、現在のタイムスタンプです。入力ベクトル timestamp として指定します。

カスタム関数が返す outputImage は、imshow によってサポートされる任意の形式のグレースケール イメージまたは RGB イメージでなければなりません。詳細については、ラベル付けでのカスタム イメージ ソース リーダーの使用を参照してください。

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

ビデオまたはイメージ シーケンスのタイムスタンプ。duration ベクトルとして指定します。

  • ビデオ ファイルの場合、Timestamps にはビデオ フレームのタイムスタンプが自動的に入力されます。

  • イメージ シーケンスまたはカスタム リーダーの場合、Timestamps には入力 duration ベクトル timestamps の値が入力されます。

  • イメージ コレクションの場合、TimeStamps プロパティは空のままです。

.

この プロパティ は読み取り専用です。

グラウンド トゥルース データのソース。文字ベクトル、または文字ベクトルの cell 配列として指定します。ソースの名前は、イメージ ファイル名、ビデオ ファイル名、イメージ シーケンスのファイル名、またはカスタム データ ソース名を参照することができます。

すべて折りたたむ

イメージ コレクションのファイル名を読み込みます。

imageDir = fullfile(matlabroot,'toolbox','vision','visiondata','bookCovers');
imds = imageDatastore(imageDir);

イメージ データストアからデータ ソースを作成します。

dataSource = groundTruthDataSource(imds);

データストアからのイメージを読み取って表示します。

I = read(dataSource.Source);
figure,imshow(I)

groundTruthDataSource オブジェクトを使用してデータ ソースを作成します。

ビデオ ファイルを読み取り、データ ソースを作成します。

videoName = 'vipunmarkedroad.avi';
dataSource = groundTruthDataSource(videoName)
dataSource = 
groundTruthDataSource for a video file with properties

        Source: ...tlab/toolbox/vision/visiondata/vipunmarkedroad.avi
    TimeStamps: [84x1 duration]

VideoReader を作成して、ビデオ フレームを読み取ります。

reader = VideoReader(videoName);

ビデオ内の 5 番目のフレームを読み取って表示します。

 timeStamp = seconds(dataSource.TimeStamps(5));
 reader.CurrentTime = timeStamp;
 I = readFrame(reader);
 
 figure
 imshow(I)

指定されたフォルダーに格納されているイメージ シーケンスからグラウンド トゥルース データ ソースを作成します。

イメージのシーケンスが含まれているフォルダーを指定します。

imageDir = fullfile(matlabroot,'toolbox','vision',...
        'visiondata','building');

imageDir フォルダー内に存在するイメージのデータ ソースを作成します。

    dataSource = groundTruthDataSource(imageDir)
dataSource = 
groundTruthDataSource for a video as an image sequence with properties

                      Source: {
                              ' .../build/matlab/toolbox/vision/visiondata/building/building1.JPG';
                              ' .../build/matlab/toolbox/vision/visiondata/building/building2.JPG';
                              ' .../build/matlab/toolbox/vision/visiondata/building/building3.JPG'
                               ... and 2 more
                              }
                  TimeStamps: [5x1 duration]

シーケンス内の 5 番目のフレームを読み取ります。

    I = imread(dataSource.Source{5});
    figure
    imshow(I)

カスタム リーダー関数を使用してグラウンド トゥルース データ ソースを作成します。

道路のイメージのシーケンスが含まれるイメージ フォルダーを指定します。

imgFolder = fullfile(matlabroot,'toolbox','vision','visiondata','building');

イメージ データストアをカスタム データ ソースとして使用します。

imgDataStore = imageDatastore(imgFolder);

データストアからイメージを読み取るリーダー関数 readerFcn を記述します。最初の入力引数 sourceName は使用されません。2 番目の入力引数 currentTimestamp は現在のタイムスタンプです。この関数は currentTimestamp を、duration スカラーから、データストアからのイメージの読み取りに適した 1 ベースのインデックスに変換します。

readerFcn = @(~,idx)readimage(imgDataStore,seconds(idx));

カスタム リーダー関数を使用して、イメージ フォルダー内にあるイメージのデータ ソースを作成します。

dataSource = groundTruthDataSource(imgFolder,readerFcn,1:5)
dataSource = 
groundTruthDataSource for a custom data source with properties

        Source: ...24/build/matlab/toolbox/vision/visiondata/building
    TimeStamps: [5x1 duration]

シーケンス内の 5 番目のフレームを読み取ります。

I = readerFcn(imgFolder,seconds(5));
figure
imshow(I)

ヒント

  • ビデオベースの groundTruthDataSource オブジェクトの groundTruth オブジェクトは、オペレーティング システムのビデオ読み取り機能に依存します。ビデオ データ ソースを使用して作成された groundTruth オブジェクトは、そのオブジェクトを作成するために使用された同じプラットフォームでのみ整合性を維持します。プラットフォーム固有の groundTruth オブジェクトを作成するには、ビデオをイメージのシーケンスに変換します。

バージョン履歴

R2017a で導入