Main Content

projective2d

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

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

説明

projective2d オブジェクトは、2 次元射影幾何学的変換をカプセル化します。

作成

projective2d オブジェクトは以下の方法を使用して作成できます。

  • fitgeotrans — 2 つのイメージの間でコントロール ポイントのペアをマッピングする幾何学的変換を推定します

  • ここで説明する関数 projective2d

説明

tform = projective2d は、恒等変換に該当する既定のプロパティ設定を使用して projective2d オブジェクトを作成します。

tform = projective2d(A) は、指定された 2 次元射影変換行列 t をプロパティ T に設定します。

プロパティ

すべて展開する

2 次元フォワード射影変換。正則な 3 行 3 列の数値行列として指定します。行列 T は次の規則を使用します。

[x y 1] = [u v 1] * T

ここで、T の形式は次のとおりです。

[a b c; ...
 d e f; ...
 g h i];

T の既定の設定は、恒等変換です。

データ型: double | single

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

入力点と出力点の両方の幾何学的変換の次元。値 2 として指定します。

オブジェクト関数

invertInvert geometric transformation
outputLimitsFind output spatial limits given input spatial limits
transformPointsForwardApply forward geometric transformation
transformPointsInverseApply inverse geometric transformation

すべて折りたたむ

回転と傾きを結合して変換行列 tm を作成します。この変換行列を使用して projective2d 幾何学的変換オブジェクト tform を作成します。

theta = 10;
tm = [cosd(theta) -sind(theta) 0.001; ...
      sind(theta) cosd(theta) 0.01; ...
      0 0 1];
tform = projective2d(tm)
tform = 
  projective2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

T プロパティの値を調べます。

tform.T
ans = 3×3

    0.9848   -0.1736    0.0010
    0.1736    0.9848    0.0100
         0         0    1.0000

拡張機能

バージョン履歴

R2013a で導入

すべて展開する

R2022b: 非推奨

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

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

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

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

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

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

T = [2 0.33 0; 0 1 0; 5 10 1];
tformPost = projective2d(T);

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

T = [2 0.33 0; 0 1 0; 5 10 1];
A = T';
tform = projtform2d(A);

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

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