このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
randomAffine2d
説明
は、恒等変換を実行する tform
= randomAffine2daffinetform2d
オブジェクトを作成します。
は、名前と値の引数を使用して、アフィン変換のタイプを指定します。tform
= randomAffine2d(Name,Value
)
例
ランダムな角度でのイメージの回転
イメージを読み取って表示します。
I = imread("kobi.png");
imshow(I)
イメージを回転する 2 次元アフィン変換オブジェクトを作成します。関数 randomAffine2d
は、区間 [35, 55] 度内の連続一様分布から回転角度をランダムに選択します。
tform1 = randomAffine2d(Rotation=[35 55]);
イメージを回転して、結果を表示します。
J = imwarp(I,tform1); imshow(J)
変換オブジェクト tform1
は、すべてのイメージを同じ量だけ回転します。ランダムに選択された異なる量だけイメージを回転するには、新しい幾何学的変換を作成します。
tform2 = randomAffine2d(Rotation=[-10 10]); J2 = imwarp(I,tform2); imshow(J2)
カスタム回転範囲を使用したイメージのランダムな回転
イメージを読み取って表示します。
I = imread("sherlock.jpg");
imshow(I)
イメージを回転する 2 次元アフィン変換オブジェクトを作成します。カスタム範囲から回転角度を選択するには、関数ハンドルとして名前と値の引数 Rotation
を指定します。この例では、2 つの重なっていない区間から角度を選択する myrange
という名前の関数 (この例の終わりで定義) を指定します。
tform = randomAffine2d(Rotation=@myrange);
イメージを回転して、結果を表示します。
J = imwarp(I,tform); imshow(J)
サポート関数
この例では、関数 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
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: tform = randomAffine2d(XReflection=true)
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: tform = randomAffine2d("XReflection",true)
XReflection
— 水平方向のランダムな反転
false
(既定値) | true
水平方向のランダムな反転。false
または true
として指定します。XReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを水平方向に反転します。既定では、この変換はイメージを水平方向に反転しません。
YReflection
— 垂直方向のランダムな反転
false
(既定値) | true
垂直方向のランダムな反転。false
または true
として指定します。YReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを垂直方向に反転します。既定では、この変換はイメージを垂直方向に反転しません。
Rotation
— 回転の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
Scale
— 一様スケーリングの範囲
[1 1]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
XShear
— 水平方向のせん断の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される水平方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向にせん断しません。
例: [0 45]
YShear
— 垂直方向のせん断の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される垂直方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを垂直方向にせん断しません。
例: [0 45]
XTranslation
— 水平方向の平行移動の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される水平方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向に平行移動しません。
例: [-5 5]
YTranslation
— 垂直方向の平行移動の範囲
[0 0]
(既定値) | 2 要素の数値ベクトル | 関数ハンドル
入力イメージに適用される垂直方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを垂直方向に平行移動しません。
例: [-5 5]
出力引数
tform
— アフィン変換
affinetform2d
オブジェクト
アフィン変換。affinetform2d
オブジェクトとして返されます。
バージョン履歴
R2019b で導入R2022b: affinetform2d
オブジェクトとして tform
を返す
R2022b 以降、ほとんどの Image Processing Toolbox™ 関数は、左から乗算する規則を使用して幾何学的変換を作成し、実行します。そのため、関数 randomAffine2d
は、左から乗算する規則をサポートする affinetform2d
オブジェクトとして出力引数 tform
を返すようになりました。以前、この関数は、右から乗算する規則をサポートする affine2d
オブジェクトとして 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)