Main Content

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

augment

複数のイメージに対する同一のランダム変換の適用

説明

augI = augment(augmenter,I) は、イメージ データ オーグメンター augmenter で定義された一連のイメージ前処理オプションに基づくランダム変換を使用して、イメージ I を拡張します。I が複数のイメージで構成されている場合、augment はすべてのイメージに対して同一の変換を適用します。

すべて折りたたむ

ランダムな角度でイメージを回転させるイメージ オーグメンターを作成します。有効な回転角度をもつカスタムの範囲を使用するには、オーグメンターの作成時に関数ハンドルを指定します。この例では、重なっていない 2 つの区間から角度を選択する myrange という関数 (この例の最後で定義されています) を指定します。

imageAugmenter = imageDataAugmenter('RandRotation',@myrange);

複数のイメージをワークスペースに読み取ってそのイメージを表示します。

img1 = imread('peppers.png');
img2 = imread('corn.tif',2);
inImg = imtile({img1,img2});
imshow(inImg)

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

同一の拡張を使用してイメージを拡張します。ランダムに選択された回転角度が一時変数 angle に返されます。

outCellArray = augment(imageAugmenter,{img1,img2});
angle = 8.1158

拡張されたイメージを表示します。

outImg = imtile(outCellArray);
imshow(outImg);

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

サポート関数

この例では、関数 myrange を定義します。この関数は、まず、2 つの区間 (-10, 10) と (170, 190) のいずれかを等しい確率でランダムに選択します。この関数は、選択した区間内で一様分布から単一の乱数を返します。

function angle = myrange()
    if randi([0 1],1)
        a = -10;
        b = 10;
    else
        a = 170;
        b = 190;
    end
    angle = a + (b-a).*rand(1)
end

入力引数

すべて折りたたむ

拡張オプション。imageDataAugmenter オブジェクトとして指定します。

拡張するイメージ。次のいずれかとして指定します。

  • 単一のグレースケール イメージまたはカラー イメージを表す数値配列。

  • 数値イメージと categorical イメージの cell 配列。イメージはサイズと型が異なっていても構いません。

出力引数

すべて折りたたむ

拡張されたイメージ。数値配列、または数値イメージと categorical イメージの cell 配列 (入力イメージ I と同じ形式) として返されます。

ヒント

  • 関数 augment を使用すると、サンプル イメージに適用された変換をプレビューできます。

  • 学習中にイメージ拡張を実行するには、augmentedImageDatastore を作成し、名前と値のペア 'DataAugmentation'imageDataAugmenter を使用して前処理オプションを指定します。拡張イメージ データストアは学習データにランダム変換を自動的に適用します。

バージョン履歴

R2018b で導入