ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

affine3d クラス

3 次元アフィン幾何学的変換

説明

affine3d オブジェクトは、3 次元アフィン幾何学的変換をカプセル化します。

構築

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

tform = affine3d(A) は、有効なアフィン変換を指定する 4 行 4 列の入力行列 A を基に affine3d オブジェクトを作成します。

入力引数

A

次の形式の有効なアフィン変換を指定する 4 行 4 列の行列

 A = [a b c 0;
      d e f 0;
      g h i 0;
      j k l 1];

既定値: 恒等変換

プロパティ

T

3 次元フォワード変換を定義する 4 行 4 列の倍精度浮動小数点行列。

行列 T は次の規則を使用します。

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

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

 [a b c 0;
  d e f 0;
  g h i 0;
  j k l 1];

既定値: 恒等変換

Dimensionality

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

メソッド

invert幾何学的変換の反転
isRigid変換が剛体変換かどうかの判別
isSimilarity変換が相似変換かどうかの判別
isTranslation変換が純粋な平行移動かどうかの判別
outputLimits入力空間範囲に基づく出力空間範囲の特定
transformPointsForwardフォワード幾何学的変換の適用
transformPointsInverse点への 3 次元幾何学逆変換の適用

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、MATLAB® ドキュメンテーションの「オブジェクトのコピー」 (MATLAB)を参照してください。

すべて展開する

次元ごとに異なるスケール係数を定義する affine3d オブジェクトを作成します。

Sx = 1.2;
Sy = 1.6;
Sz = 2.4;
tform = affine3d([Sx 0 0 0; 0 Sy 0 0; 0 0 Sz 0; 0 0 0 1]);
tform = 

  affine3d with properties:

                 T: [4x4 double]
    Dimensionality: 3

フォワード幾何学的変換を入力点に適用します。

[X,Y,Z] = transformPointsForward(tform,1,1,1)
X =

    1.2000


Y =

    1.6000


Z =

    2.4000

前の手順で得た出力点に幾何学的逆変換を適用して、元の点に戻します。

[U,V,W] = transformPointsInverse(tform,X,Y,Z)
U =

     1


V =

     1


W =

     1

MRI イメージを読み込みます。

A = load('mri');
A = squeeze(A.D);

次元ごとに異なるスケール係数を定義する affine3d オブジェクトを作成します。

Sx = 1.2;
Sy = 1.6;
Sz = 2.4;
tform = affine3d([Sx 0 0 0; 0 Sy 0 0; 0 0 Sz 0; 0 0 0 1]);
tform = 

  affine3d with properties:

                 T: [4x4 double]
    Dimensionality: 3

関数 imwarp を使用して幾何学的変換をイメージに適用し、変換されたボリュームの中心を通る軸スライスを可視化して、スケール変換の効果を確認します。

outputImage = imwarp(A,tform);
figure, imshowpair(A(:,:,14),outputImage(:,:,27));

この情報は役に立ちましたか?