randomAffine2d
ランダムな 2 次元アフィン変換の作成
説明
は、恒等変換を実行する 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)
水平方向のランダムな反転。false
または true
として指定します。XReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを水平方向に反転します。既定では、この変換はイメージを水平方向に反転しません。
垂直方向のランダムな反転。false
または true
として指定します。YReflection
が true
(1
) の場合、変換 tform
は 50% の確率でイメージを垂直方向に反転します。既定では、この変換はイメージを垂直方向に反転しません。
入力イメージに適用される水平方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向にせん断しません。
例: [0 45]
入力イメージに適用される垂直方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され、範囲は (–90, 90) になります。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向のせん断角度は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを垂直方向にせん断しません。
例: [0 45]
入力イメージに適用される水平方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。水平方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを水平方向に平行移動しません。
例: [-5 5]
入力イメージに適用される垂直方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2 要素の数値ベクトル。2 番目の要素は最初の要素以上でなければなりません。垂直方向の平行移動距離は、指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では、変換 tform
はイメージを垂直方向に平行移動しません。
例: [-5 5]
出力引数
アフィン変換。affinetform2d
オブジェクトとして返されます。
バージョン履歴
R2019b で導入R2022b 以降、ほとんどの Image Processing Toolbox™ 関数は、左から乗算する規則を使用して幾何学的変換を作成し、実行します。そのため、関数 randomAffine2d
は、左から乗算する規則をサポートする affinetform2d
オブジェクトとして出力引数 tform
を返すようになりました。以前、この関数は、右から乗算する規則をサポートする affine2d
オブジェクトとして tform
を返していました。詳細については、Migrate Geometric Transformations to Premultiply Conventionを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)