メインコンテンツ

simtform2d

2 次元相似幾何学的変換

R2022b 以降

    説明

    simtform2d オブジェクトは、2 次元相似幾何学的変換に関する情報を格納し、順変換と逆変換を可能にします。

    作成

    simtform2d オブジェクトは次の方法で作成できます。

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

    • ここで説明する simtform2d 関数。

    説明

    tform = simtform2d は、恒等変換を実行する simtform2d オブジェクトを作成します。

    tform = simtform2d(s,rotAngle,t) は、指定されたスケール係数 s、回転角度 rotAngle、および平行移動量 t に基づいて相似変換を実行する simtform2d オブジェクトを作成します。

    tform = simtform2d(s,rotMat,t) は、指定されたスケール係数 s、回転行列 rotMat、および平行移動量 t に基づいて相似変換を実行する simtform2d オブジェクトを作成します。

    tform = simtform2d(simMat) は、指定された 2 次元相似変換行列 simMat から simtform2d オブジェクトを作成します。

    tform = simtform2d(tformIn) は、有効な 2 次元相似幾何学的変換を表す別の幾何学的変換オブジェクト tformIn から simtform2d オブジェクトを作成します。

    入力引数

    すべて展開する

    スケール係数。正の数値として指定します。スケール係数は、プロパティ A によって定義される相似変換行列の値 s に対応します。

    この引数は Scale プロパティを設定します。

    データ型: double | single

    原点を中心とした回転角度 (度単位)。範囲 [-180, 180) の数値スカラーとして指定します。この範囲外の回転角度を指定した場合、simtform2d オブジェクトは、360 の正または負の倍数を加算して、値が自動的に [-180, 180) の範囲になるようにします。

    回転角度は、プロパティ A で定義される変換行列と、プロパティ R で定義される回転行列の値 r に対応します。

    この引数は RotationAngle プロパティを設定します。

    データ型: double | single

    回転行列。2 行 2 列の数値行列として指定します。行列は次の形式でなければなりません。

     R = [cosd(r) -sind(r); sind(r)  cosd(r)]
    ここで、r は原点を中心とした回転角度の値です。

    この引数は R プロパティを設定します。

    平行移動の量。[tx ty] 形式の 2 要素の数値ベクトルとして指定します。この平行移動の量は、A によって定義される相似変換行列の値 txty に対応します。

    この引数は Translation プロパティを設定します。

    データ型: double | single

    順方向の 2 次元相似変換。3 行 3 列の数値行列として指定します。simMat を 2 行 3 列の数値行列として指定することもできます。この場合、オブジェクトは行ベクトル [0 0 1] を行列の最後まで連結し、3 行 3 列の行列を作成します。

    有効な 2 次元相似変換 A の形式は次のとおりです。

    Α=[s×cosd(r)s×sind(r)txs×sind(r)s×cosd(r)ty001]

    s はスケール係数であり、Scale プロパティを設定します。r は回転角度であり、RotationAngle プロパティを設定します。txty はそれぞれ x 方向と y 方向の平行移動の量であり、Translation プロパティを設定します。

    この引数は A プロパティを設定します。

    データ型: double | single

    2 次元相似幾何学的変換。affinetform2d オブジェクト、rigidtform2d オブジェクト、simtform2d オブジェクト、transltform2d オブジェクト、または projtform2d オブジェクトとして指定します。

    出力引数

    すべて展開する

    2 次元相似幾何学的変換。simtform2d オブジェクトとして返されます。

    プロパティ

    すべて展開する

    順方向の 2 次元相似変換。3 行 3 列の数値行列として指定します。A の既定値は単位行列です。

    行列 A は、次の規則を使用して、入力座標空間内の点 (u, v) を出力座標空間内の点 (x, y) に変換します。

    [xy1]=Α×[uv1]

    相似変換の場合、A は次の形式になります。

    Α=[s×cosd(r)s×sind(r)txs×sind(r)s×cosd(r)ty001]

    ここで、s はスケール係数であり、Scale プロパティに対応します。r は回転角度であり、RotationAngle プロパティに対応します。txty は、それぞれ x 方向と y 方向の平行移動の量であり、Translation プロパティに対応します。

    データ型: double | single

    スケール係数。正の数値として指定します。スケール係数は、プロパティ A によって定義される相似変換行列の値 s に対応します。

    データ型: double | single

    回転行列。2 行 2 列の数値行列として指定します。行列は次の形式でなければなりません。

     R = [cosd(r) -sind(r); sind(r)  cosd(r)]
    ここで、rRotationAngle プロパティの値です。

    原点を中心とした回転角度 (度単位)。範囲 [-180, 180) の数値スカラーとして指定します。この範囲外の回転角度を指定した場合、simtform2d オブジェクトは、360 の正または負の倍数を加算して、値が自動的に [-180, 180) の範囲になるようにします。

    回転角度は、A で定義される変換行列と R で定義される回転行列の値 r に対応します。

    データ型: double | single

    平行移動の量。[tx ty] 形式の 2 要素の数値ベクトルとして指定します。この平行移動の量は、A によって定義される相似変換行列の値 txty に対応します。

    データ型: double | single

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

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

    データ型: double

    オブジェクト関数

    invert幾何学的逆変換
    outputLimits与えられた入力空間範囲について出力空間範囲を求める
    transformPointsForward順方向の幾何学的変換の適用
    transformPointsInverse逆方向の幾何学的変換の適用

    すべて折りたたむ

    スケール係数、回転角度、および平行移動の量を指定します。

    scaleFactor = 3;
    theta = 30;
    translation = [10 20.5];

    指定したスケーリング、回転、および平行移動を実行する simtform2d オブジェクトを作成します。

    tform = simtform2d(scaleFactor,theta,translation)
    tform = 
      simtform2d with properties:
    
        Dimensionality: 2
                 Scale: 3
         RotationAngle: 30
           Translation: [10 20.5000]
                     R: [2×2 double]
    
                     A: [2.5981   -1.5000   10.0000
                         1.5000    2.5981   20.5000
                              0         0    1.0000]
    
    

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

    tform.A
    ans = 3×3
    
        2.5981   -1.5000   10.0000
        1.5000    2.5981   20.5000
             0         0    1.0000
    
    

    拡張機能

    すべて展開する

    バージョン履歴

    R2022b で導入

    すべて展開する