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

randomAffine3d

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

説明

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

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

すべて折りたたむ

サンプル ボリュームを作成します。

volumeCube = ones(100,100,100);
figure
volshow(volumeCube);

3 次元ボリュームをせん断する affine3d 変換オブジェクトを作成します。関数 randomAffine3d は、区間 [40, 60] 度内の連続一様分布からせん断量をランダムに選択します。randomAffine3d は、xy、または z 軸に一致するせん断方向をランダムに選択します。

tform1 = randomAffine3d('Shear',[40 60]);
J1 = imwarp(volumeCube,tform1);
figure
volshow(J1);

ランダムに選択された異なる量だけボリュームをせん断するには、新しい affine3d 変換オブジェクトを作成します。せん断方向の違いに注目してください。

tform2 = randomAffine3d('Shear',[40 60]);
J2 = imwarp(volumeCube,tform2);
figure
volshow(J2);

入力引数

すべて折りたたむ

名前と値のペアの引数

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

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

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

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

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

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

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

  • 次の形式の関数ハンドル

    [rotationAxis,theta] = selectRotation
    関数 selectRotation は入力引数を受け入れてはなりません。この関数は 2 つの出力引数 rotationAxis (回転軸を定義する 3 要素ベクトル) と theta (度単位の回転角度) を返さなければなりません。

    関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して回転角度を選択します。関数ハンドルを使用して回転軸を指定することもできます。関数ハンドルの詳細は、関数ハンドルの作成 (MATLAB)を参照してください。

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

例: [-45 45]

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

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

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

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

例: [0.5 4]

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

  • 2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。せん断角度は、指定区間内の連続一様分布からランダムに選択されます。randomAffine3d は、可能な 2 つの直交方向に対する主 x、y、および z 方向のいずれかの一様ランダム性を使用してせん断を適用します。

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

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

例: [0 45]

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

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

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

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

例: [-5 5]

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

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

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

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

例: [-5 5]

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

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

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

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

例: [-5 5]

出力引数

すべて折りたたむ

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

R2019b で導入