Main Content

rigid2d

(非推奨) 右から乗算する規則を使用した 2 次元剛体幾何学的変換

R2020b 以降

rigid2d は推奨されません。代わりに、rigidtform2d オブジェクトを使用してください。詳細については、互換性の考慮事項を参照してください。

説明

rigid2d オブジェクトは、2 次元剛体幾何学的変換に関する情報を格納し、フォワード変換と逆変換を可能にします。

作成

説明

tform = rigid2d は、恒等変換に該当する既定の rigid2d オブジェクトを作成します。

tform = rigid2d(t) は、指定された 2 次元剛体変換行列 tT プロパティに設定します。

tform = rigid2d(rot,trans) は、指定された回転行列 rot および平行移動ベクトル trans を、それぞれ Rotation プロパティおよび Translation プロパティに設定します。

プロパティ

すべて展開する

フォワード剛体変換。3 行 3 列の数値行列として指定します。行列 T は次に示す右から乗算する規則を満たします。

[x y 1] = [u v 1] * Rotation + Translation

データ型: single | double

変換の回転成分。2 行 2 列の数値行列として指定します。

データ型: single | double

変換の並進成分。2 要素の数値の行ベクトルとして指定します。

データ型: single | double

この プロパティ は読み取り専用です。

幾何学的変換の次元。数値 2 として指定します。

オブジェクト関数

invertInvert geometric transformation
isTranslation幾何学的変換が純粋な平行移動かどうかの判別
outputLimitsFind output spatial limits given input spatial limits
transformPointsForwardApply forward geometric transformation
transformPointsInverseApply inverse geometric transformation

すべて折りたたむ

回転角度の度数を指定し、2 行 2 列の回転行列を作成します。

theta = 30;
rot = [ cosd(theta) sind(theta); ...
       -sind(theta) cosd(theta)];

水平方向および垂直方向の並進の量をそれぞれ指定します。

trans = [2 3];

回転と並進を行う rigid2d オブジェクトを作成します。

tform = rigid2d(rot,trans)
tform = 
  rigid2d with properties:

       Rotation: [2x2 double]
    Translation: [2 3]

拡張機能

バージョン履歴

R2020b で導入

すべて折りたたむ

R2022b: 非推奨

R2022b 以降、ほとんどの Image Processing Toolbox™ 関数は、左から乗算する規則を使用して幾何学的変換を作成し、実行します。そのため、rigid2d オブジェクトは右から乗算する規則を使用していることから推奨されません。現時点では、rigid2d オブジェクトを削除する予定はありませんが、左から乗算する規則をサポートする rigidtform2d オブジェクトに切り替えることで、幾何学的変換のワークフローを効率化できます。詳細については、Migrate Geometric Transformations to Premultiply Conventionを参照してください。

コードを更新するには、次を行います。

  • 関数名 rigid2d のインスタンスを rigidtform2d に変更します。

  • 行列 T または Rotation の転置として変換行列を指定します。Trigid2d オブジェクトの T プロパティの値または rigid2d オブジェクトの作成に使用した変換行列のいずれかです。Rotationrigid2d オブジェクトの Rotation プロパティの値または rigid2d オブジェクトの作成に使用した回転行列のいずれかです。

非推奨の使用方法推奨される代替案

この例では、右から乗算する規則で変換行列 T から rigid2d オブジェクトを作成します。

T = [1 0 0; 0 1 0; 5 10 1];
tformPost = rigid2d(T);

この例では、変換行列 T の転置から rigidtform2d オブジェクトを作成します。

T = [1 0 0; 0 1 0; 5 10 1];
tform = rigidtform2d(T');

この例では、tformPost という名前の rigid2d オブジェクトから開始し、tformPostT プロパティの転置から rigidtform2d オブジェクトを作成します。

T = tformPost.T;
tform = rigidtform2d(T');

この例では、右から乗算する規則の回転行列 rot、および平行移動 trans から rigid2d オブジェクトを作成します。

theta = 45;
rot = [cosd(theta) sind(theta); -sind(theta) cosd(theta)];
trans = [5 10];
tformPost = rigid2d(rot,trans);

この例では、回転行列 rot の転置および平行移動 trans から rigidtform2d オブジェクトを作成します。

theta = 45;
rot = [cosd(theta) sind(theta); -sind(theta) cosd(theta)];
trans = [5 10];
tform = rigidtform2d(rot',trans);

回転の角度を直接指定することで、コードを単純化できます。

tform = rigidtform2d(theta,trans);