Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

randomAffine2d

ランダムな 2 次元アフィン変換の作成

説明

tform= randomAffine2dは、恒等変換と一致する既定のプロパティ値を使用して、affine2dオブジェクトを作成します。

tform= randomAffine2d(Name,Value)は、名前と値のペアの引数を使用して、アフィン変換のタイプを指定します。

すべて折りたたむ

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

I = imread('kobi.png'); imshow(I)

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

イメージを回転するaffine2d変換オブジェクトを作成します。関数randomAffine2dは、区間 [35, 55] 度内の連続一様分布から回転角度をランダムに選択します。

tform1 = randomAffine2d('Rotation',[35 55]);

イメージを回転して、結果を表示します。

J = imwarp(I,tform1); imshow(J)

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

変換オブジェクトtform1は、すべてのイメージを同じ量だけ回転します。ランダムに選択された異なる量だけイメージを回転するには、新しいaffine2d変換オブジェクトを作成します。

tform2 = randomAffine2d('Rotation',[-10 10]); J2 = imwarp(I,tform2); imshow(J2)

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

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

I = imread('sherlock.jpg'); imshow(I)

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

イメージを回転するaffine2d変換オブジェクトを作成します。カスタム範囲から回転角度を選択するには、関数ハンドルとして名前と値のペアの引数'Rotation'を指定します。この例では、2 つの重なっていない区間から角度を選択するmyrangeという名前の関数 (この例の終わりで定義) を指定します。

tform = randomAffine2d('Rotation',@myrange);

イメージを回転して、結果を表示します。

J = imwarp(I,tform); imshow(J)

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

サポート対象の関数

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

functionangle = myrange()ifrandi([0 1],1) a = -10; b = 10;elsea = 170; b = 190;end角= a + (b)。*兰德(1);end

入力引数

すべて折りたたむ

名前と値の引数

例:tform = randomAffine2d('XReflection',true)

オプションの引数Name,Valueのコンマ区切りペアを指定します。Nameは引数名で、Valueは対応する値です。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのように、複数の名前と値のペアの引数を、任意の順番で指定できます。

水平方向のランダムな反転。'XReflection'falseまたはtrueから構成されるコンマ区切りのペアとして指定します。XReflectiontrue(1) の場合、変換tformは 50% の確率でイメージを水平方向に反転します。既定では、この変換はイメージを水平方向に反転しません。

垂直方向のランダムな反転。'YReflection'falseまたはtrueから構成されるコンマ区切りのペアとして指定します。YReflectiontrue(1) の場合、変換tformは 50% の確率でイメージを垂直方向に反転します。既定では、この変換はイメージを垂直方向に反転しません。

入力イメージに適用される回転の範囲 (度単位)。'Rotation'と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。回転角度は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、回転角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して回転角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージを回転しません。

例:[-45 45]

入力イメージに適用される一様 (等方性) スケーリングの範囲。'Scale'と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。スケール係数は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、スケール係数を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用してスケール係数を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージをスケーリングしません。

例:[0.5 4]

入力イメージに適用される水平方向のせん断の範囲。'XShear'と次のいずれかから構成されるコンマ区切りのペアとして指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、水平方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージを水平方向にせん断しません。

例:[0 45]

入力イメージに適用される垂直方向のせん断の範囲。'YShear'と次のいずれかから構成されるコンマ区切りのペアとして指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、垂直方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージを垂直方向にせん断しません。

例:[0 45]

入力イメージに適用される水平方向の平行移動の範囲。'XTranslation'と次のいずれかから構成されるコンマ区切りのペアとして指定します。平行移動距離はピクセル単位で測定します。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、水平方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージを水平方向に平行移動しません。

例:[-5 5]

入力イメージに適用される垂直方向の平行移動の範囲。'YTranslation'と次のいずれかから構成されるコンマ区切りのペアとして指定します。平行移動距離はピクセル単位で測定します。

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。

  • 関数ハンドル。関数は入力引数を受け入れず、垂直方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

既定では、変換tformはイメージを垂直方向に平行移動しません。

例:[-5 5]

出力引数

すべて折りたたむ

アフィン変換。affine2dオブジェクトとして指定します。

バージョン履歴

R2019b で導入