このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
randomAffine3d
説明
は、恒等変換を実行する tform
= randomAffine3daffinetform3d
オブジェクトを作成します。
は、名前と値の引数を使用して、アフィン変換のタイプを指定します。tform
= randomAffine3d(Name,Value
)
例
3 次元ボリュームのランダムなせん断
サンプル ボリュームを作成します。
volumeCube = 0.5*ones(100,100,100);
シーンの外観を制御する 3 次元ビューアーを作成します。シーンのカメラ位置を設定して、ボリュームの可視状態を改良します。
viewer = viewer3d(CameraPosition=[700 -250 650],CameraTarget=[50 50 50]);
シーン内でボリュームを表示します。
volshow(volumeCube,Parent=viewer);
3 次元ボリュームをせん断する 3 次元アフィン変換を作成します。関数 randomAffine3d
は、区間 [40, 60] 度内の連続一様分布からせん断量をランダムに選択します。randomAffine3d
は、x、y、または z 軸に一致するせん断方向をランダムに選択します。
tform1 = randomAffine3d(Shear=[40 60]); J1 = imwarp(volumeCube,tform1);
せん断されたボリュームを、新しいシーンに同じカメラ位置で表示します。
viewer1 = viewer3d(CameraPosition=[700 -250 650],CameraTarget=[50 50 50]); volshow(J1,Parent=viewer1);
ランダムに選択された異なる量だけボリュームをせん断するには、新しい 3 次元アフィン変換を作成します。せん断方向の違いに注目してください。
tform2 = randomAffine3d(Shear=[40 60]); J2 = imwarp(volumeCube,tform2);
せん断されたボリュームを、新しいシーンに同じカメラ位置で表示します。
viewer2 = viewer3d(CameraPosition=[700 -250 650],CameraTarget=[50 50 50]); volshow(J2,Parent=viewer2);
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: tform = randomAffine3d(XReflection=true)
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: tform = randomAffine3d("XReflection",true)
XReflection
— 水平方向のランダムな反転
false
(既定値) | true
水平方向のランダムな反転。false
または true
として指定します。XReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを水平方向に反転します。既定では、この変換はイメージを水平方向に反転しません。
YReflection
— 垂直方向のランダムな反転
false
(既定値) | true
垂直方向のランダムな反転。false
または true
として指定します。YReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを垂直方向に反転します。既定では、この変換はイメージを垂直方向に反転しません。
ZReflection
— 奥行方向のランダムな反転
false
(既定値) | true
奥行方向のランダムな反転。false
または true
として指定します。ZReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを奥行方向に反転します。既定では、この変換はイメージを奥行方向に反転しません。
Rotation
— 回転の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される回転の範囲。次のいずれかに指定します。回転は度単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。
randomAffine3d
は、指定区間内の連続一様分布から回転角度をランダムに選択します。randomAffine3d
は単位球体から回転軸をランダムに選択します。次の形式の関数ハンドル
関数[rotationAxis,theta] = selectRotation
selectRotation
は入力引数を受け入れてはなりません。この関数は 2 つの出力引数rotationAxis
(回転軸を定義する 3 要素ベクトル) とtheta
(度単位の回転角度) を返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して回転角度を選択します。関数ハンドルを使用して回転軸を指定することもできます。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを回転しません。
例: [-45 45]
Scale
— 一様スケーリングの範囲
[1 1]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
Shear
— せん断の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用されるせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。せん断角度は、指定区間内の連続一様分布からランダムに選択されます。
randomAffine3d
は、可能な 2 つの直交方向に対する主 x、y、および z 方向のいずれかの一様ランダム性を使用してせん断を適用します。関数ハンドル。関数は入力引数を受け入れず、せん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用してせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向にせん断しません。
例: [0 45]
XTranslation
— 水平方向の平行移動の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される水平方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向に平行移動しません。
例: [-5 5]
YTranslation
— 垂直方向の平行移動の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される垂直方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを垂直方向に平行移動しません。
例: [-5 5]
ZTranslation
— 奥行方向の平行移動の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される奥行方向の平行移動の範囲。次のいずれかとして指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを奥行方向に平行移動しません。
例: [-5 5]
出力引数
tform
— アフィン変換
affinetform3d
オブジェクト
アフィン変換。affinetform3d
オブジェクトとして返されます。
バージョン履歴
R2019b で導入R2022b: affinetform3d
オブジェクトとして tform
を返す
R2022b 以降、ほとんどの Image Processing Toolbox™ 関数は、左から乗算する規則を使用して幾何学的変換を作成し、実行します。そのため、関数 randomAffine3d
は、左から乗算する規則をサポートする affinetform3d
オブジェクトとして出力引数 tform
を返すようになりました。以前、この関数は、右から乗算する規則をサポートする affine3d
オブジェクトとして tform
を返していました。詳細については、Migrate Geometric Transformations to Premultiply Conventionを参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)