Main Content

rigidtform3d

3 次元剛体幾何学的変換

R2022b 以降

    説明

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

    作成

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

    • imregtform — 類似性の最適化を使用して移動イメージを固定イメージにマッピングする幾何学的変換を推定します。

    • 他のツールボックスに含まれる、幾何学的変換を返す関数。例 (これに限定されません):

    • ここで説明する関数 rigidtform3d

    説明

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

    tform = rigidtform3d(R,Translation) は、指定された R および Translation プロパティの値に基づいて剛体変換を実行する rigidtform3d オブジェクトを作成します。これらのプロパティは、回転行列と、xy、および z 方向における平行移動の量を示します。

    tform = rigidtform3d(eulerAngles,Translation) は、オイラー角および指定された Translation プロパティの値に基づいて剛体変換を実行する rigidtform3d オブジェクトを作成します。

    tform = rigidtform3d(A) は、rigidtform3d オブジェクトを作成し、指定された 3 次元剛体変換行列をプロパティ A に設定します。

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

    入力引数

    すべて展開する

    x,y,z 順のオイラー角 (度単位)。[rx ry rz] 形式の 3 要素の数値ベクトルとして指定します。オイラー角は、R プロパティを以下のように 3 つの回転行列の積として設定します。

     Rx = [1 0 0; 0 cosd(rx) -sind(rx); 0 sind(rx) cosd(rx)];
     Ry = [cosd(ry) 0 sind(ry); 0 1 0; -sind(ry) 0 cosd(ry)];
     Rz = [cosd(rz) -sind(rz) 0; sind(rz) cosd(rz) 0; 0 0 1];
      R = Rz*Ry*Rx;

    データ型: double | single

    3 次元剛体幾何学的変換。affinetform3d オブジェクト、rigidtform3d オブジェクト、simtform3d オブジェクト、または transltform3d オブジェクトとして指定します。

    プロパティ

    すべて展開する

    3 次元フォワード剛体変換。4 行 4 列の数値行列として指定します。このオブジェクトを作成する場合は、3 行 4 列の数値行列として A を指定することもできます。この場合、オブジェクトは行ベクトル [0 0 0 1] を行列の最後まで連結し、4 行 4 列の行列を作成します。A の既定値は単位行列です。

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

    [xyz1]=Α×[uvw1]

    剛体変換の場合、A の形式は次のとおりです。

    Α=[R(1,1)R(1,2)R(1,3)txR(2,1)R(2,2)R(2,3)tyR(3,1)R(3,2)R(3,3)tz0001]

    ここで、各要素 R(i,j)R プロパティによって指定された回転行列の要素 (i, j) です。txty、および tz は、それぞれ xy、および z 方向における平行移動の量で、Translation プロパティに対応します。

    データ型: double | single

    回転行列。3 行 3 列の数値行列として指定します。回転行列には、まず z 軸、次に y 軸、その次に x 軸を中心に回転させる効果があります。

    平行移動の量。[tx ty tz] 形式の 3 要素の数値ベクトルとして指定します。

    データ型: double | single

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

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

    データ型: double

    オブジェクト関数

    invert幾何学的逆変換
    outputLimitsFind output spatial limits given input spatial limits
    transformPointsForwardApply forward geometric transformation
    transformPointsInverseApply inverse geometric transformation

    すべて折りたたむ

    オイラー角および平行移動の量を指定します。

    angles = [30 0 90];
    translation = [10 20.5 15];

    指定された回転と平行移動を行う rigidtform3d オブジェクトを作成します。

    tform = rigidtform3d(angles,translation)
    tform = 
      rigidtform3d with properties:
    
        Dimensionality: 3
           Translation: [10 20.5000 15]
                     R: [3x3 double]
    
                     A: [     0   -0.8660    0.5000   10.0000
                         1.0000         0         0   20.5000
                              0    0.5000    0.8660   15.0000
                              0         0         0    1.0000]
    
    

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

    tform.A
    ans = 4×4
    
             0   -0.8660    0.5000   10.0000
        1.0000         0         0   20.5000
             0    0.5000    0.8660   15.0000
             0         0         0    1.0000
    
    

    拡張機能

    バージョン履歴

    R2022b で導入

    すべて展開する