Main Content

imregtform

2 つの 2 次元イメージまたは 3 次元イメージを位置合わせする幾何学的変換の推定

説明

tform = imregtform(moving,fixed,tformType,optimizer,metric) は移動イメージ moving を固定イメージ fixed に位置合わせする幾何学的変換を推定します。tformType は推定する変換のタイプを定義します。optimizer はメトリクスを最適化するための方法を記述します。metric は最適化するイメージ間の類似度の定量的な尺度を定義します。

tform = imregtform(moving,Rmoving,fixed,Rfixed,tformType,optimizer,metric) は幾何学的変換を推定します。ここで、Rmoving および Rfixedmoving イメージおよび fixed イメージに関連付けられている空間参照オブジェクトを指定します。出力 tform は、空間参照オブジェクト Rmoving および Rfixed で定義されている単位で表された幾何学的変換オブジェクトです。

tform = imregtform(___,Name,Value) は、処理の特性を制御する名前と値の引数を使用して、幾何学的変換を推定します。

すべて折りたたむ

2 つのイメージを読み取ります。この例では、膝の 2 個の MRI (磁気共鳴) イメージを使用します。固定イメージはスピン エコー イメージであり、移動イメージは反転回復を行ったスピン エコー イメージです。同時に 2 個の矢状スライスが取得されますが、ややずれています。

fixed = dicomread("knee1.dcm");
moving = dicomread("knee2.dcm");

位置のずれたイメージを表示します。

imshowpair(fixed,moving,"Scaling","joint")

Figure contains an axes object. The axes object contains an object of type image.

オプティマイザーとメトリクスを作成します。異なるセンサーから得たイメージであるため、モダリティを "multimodal" に指定します。

[optimizer,metric] = imregconfig("multimodal")
optimizer = 
  registration.optimizer.OnePlusOneEvolutionary

  Properties:
         GrowthFactor: 1.050000e+00
              Epsilon: 1.500000e-06
        InitialRadius: 6.250000e-03
    MaximumIterations: 100
metric = 
  registration.metric.MattesMutualInformation

  Properties:
    NumberOfSpatialSamples: 500
     NumberOfHistogramBins: 50
              UseAllPixels: 1

問題が大域的最大値に落ち着き、より多くの反復が可能となるように、オプティマイザーのプロパティを調整します。

optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;

レジストレーションを行うイメージ (moving) を参照イメージ (fixed) にマッピングする幾何学的変換を見つけます。

tform = imregtform(moving,fixed,"affine",optimizer,metric)
tform = 
  affinetform2d with properties:

    Dimensionality: 2
                 A: [3x3 double]

関数 imwarp を使用してレジストレーションするイメージ (moving) に変換を適用します。この例では 名前と値の引数 "OutputView" を使用し、変換されたイメージの形成に際して参照イメージのワールド座標範囲と解像度を維持しています。

movingRegistered = imwarp(moving,tform,"OutputView",imref2d(size(fixed)));

レジストレーションが行われたイメージを表示します。

figure
imshowpair(fixed,movingRegistered,"Scaling","joint")

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

レジストレーションされるイメージであり、2 次元または 3 次元のグレースケール イメージとして指定されます。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

ターゲット方向の参照イメージであり、2 次元または 3 次元のグレースケール イメージとして指定されます。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

レジストレーションされるイメージに関連付けられている空間参照情報。imref2d または imref3d オブジェクトとして指定します。

参照 (固定) イメージに関連付けられている空間参照情報。imref2d または imref3d オブジェクトとして指定します。

幾何学的変換タイプ。次のいずれかの値を指定します。

説明
"translation"平行移動変換
"rigid"剛体変換: 平行移動と回転
"similarity"相似変換: 平行移動、回転、等方性スケーリング
"affine"アフィン変換: 平行移動、回転、異方性スケーリング、せん断

"similarity" および "affine" の変換タイプは、鏡映をサポートしていません。

データ型: char | string

類似度メトリクスを最適化するメソッド。RegularStepGradientDescent オブジェクトまたは OnePlusOneEvolutionary オブジェクトとして指定します。

レジストレーション時に最適化されるイメージの類似度メトリクス。MeanSquares オブジェクトまたは MattesMutualInformation オブジェクトとして指定します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: PyramidLevels=4 では 4 つのピラミッド レベルを使用します。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: "PyramidLevels",4 では 4 つのピラミッド レベルを使用します。

レジストレーション プロセスにおいて、最適化情報をコマンド ウィンドウに表示します。論理値 true または false として指定します。

データ型: logical

初期幾何学的変換。表に記載されている幾何学的変換オブジェクトとして指定します。

幾何学的変換オブジェクト説明
2 次元幾何学的変換
transltform2d平行移動変換
rigidtform3d剛体変換: 平行移動と回転
simtform2d相似変換: 平行移動、回転、等方性スケーリング
affinetform2dアフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断
3 次元幾何学的変換
transltform3d平行移動変換
rigidtform3d剛体変換: 平行移動と回転
simtform3d相似変換: 平行移動、回転、等方性スケーリング
affinetform3dアフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断

メモ

InitialTransformation は、affine2d オブジェクトまたは affine3d オブジェクトとして指定することもできます。ただし、これらのオブジェクトは推奨されません。詳細については、互換性の考慮事項を参照してください。

レジストレーション プロセスで使用されるピラミッド レベルの数。正の整数として指定します。

例: PyramidLevels=4 は、ピラミッド レベル数を 4 に設定します。

出力引数

すべて折りたたむ

幾何学的変換。イメージの次元および変換タイプ tformType に従う幾何学的変換オブジェクトとして返されます。

変換タイプ

2 次元幾何学的変換オブジェクト3 次元幾何学的変換オブジェクト
"translation"transltform2dtransltform3d
"rigid"rigidtform2drigidtform3d
"similarity"simtform2dsimtform3d
"affine"affinetform2daffinetform3d

ヒント

  • 空間参照情報がある場合は、空間参照オブジェクトを使用してこの情報を必ず imregtform に渡します。この情報によってスケールの差が考慮されるため、imregtform でより適切な結果にすばやく収束するようになります。

  • imregtformimregister はいずれも同じ基礎となるレジストレーション アルゴリズムを使用しています。imregister は、moving をリサンプリングする追加ステップを実行し、imregtform で計算された幾何学的変換の推定からレジストレーションされた出力イメージを生成します。movingfixed に関連付ける幾何学的変換にアクセスするには、imregtform を使用します。レジストレーションされた出力イメージが必要なときは、imregister を使用します。

  • 通常、最適化ベースのイメージのレジストレーションで適切な結果を得るには、レジストレーションされるイメージのペアについて、オプティマイザーやメトリクスの設定を変更する必要があります。関数 imregconfig によって提供される既定の構成は、単なる開始点にすぎません。変更できる各種のパラメーターの詳細については、imregconfig の出力を参照してください。

バージョン履歴

R2013a で導入

すべて展開する