Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imregister

強度ベースのイメージ レジストレーション

説明

moving_reg = imregister(moving,fixed,transformType,optimizer,metric) は、2 次元または 3 次元のグレースケール イメージ moving を変換し、参照イメージ fixed にレジストレーションします。transformType は実行する変換のタイプを定義し、metric は最適化するイメージ間における類似度の定量的な尺度を定義し、optimizer はメトリクスを最適化するための方法を記述します。この関数は、レジストレーションされたイメージ moving_reg を返します。

[moving_reg,R_reg] = imregister(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric) は、空間参照イメージ fixed を用いてレジストレーションされるように、空間参照イメージ moving を変換します。Rmoving および Rfixed は、moving および fixed のワールド座標範囲と解像度を記述する空間参照オブジェクトです。

___ = imregister(___,Name,Value) は、1 つ以上の名前と値のペアの引数によって追加オプションを指定します。

すべて折りたたむ

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;

レジストレーションを実行します。

movingRegistered = imregister(moving,fixed,"affine",optimizer,metric);

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

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

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

入力引数

すべて折りたたむ

レジストレーションされるイメージ。2 次元グレースケール イメージを表す数値行列または 3 次元グレースケール ボリュームを表す 3 次元数値配列として指定します。

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

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

ターゲット方向の参照イメージ。2 次元グレースケール イメージを表す数値行列または 3 次元グレースケール ボリュームを表す 3 次元数値配列として指定します。参照イメージは、レジストレーションを行うイメージ moving と同じ次元でなければなりません。

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

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

移動イメージに適用される幾何学的変換は、次のいずれかの値に指定します。

説明
"translation"2 次元の (x,y) の平行移動または 3 次元の (x,y,z) の平行移動。
"rigid"平行移動と回転を含む剛体変換。
"similarity"平行移動、回転およびスケーリングを含む非鏡映相似変換。
"affine"平行移動、回転、スケーリングおよびせん断を含むアフィン変換。

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

データ型: char | string

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

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

名前と値の引数

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

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

例: "DisplayOptimization",1 は詳細な最適化モードを有効にします。

詳細な最適化フラグ。論理値 true または false として指定します。レジストレーション プロセスにおいて imregister が最適化情報をコマンド ウィンドウに表示するかどうかを制御します。

データ型: logical

初期幾何学的変換。affinetform2d または affinetform3d オブジェクトとして指定します。

メモ

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

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

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

データ型: double

出力引数

すべて折りたたむ

レジストレーションされたイメージ。2 次元グレースケール イメージを表す 2 次元数値行列または 3 次元グレースケール ボリュームを表す 3 次元数値配列として返されます。元のイメージ内の位置に対応せずに塗りつぶされるピクセルはすべて 0 です。

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

ヒント

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

  • imregister を呼び出す前に、関数 imregconfig を使用して optimizermetric を作成します。通常、最適化ベースのイメージのレジストレーションで適切な結果を得るには、レジストレーションされるイメージのペアについて、オプティマイザーまたはメトリクスの設定を変更する必要があります。関数 imregconfig によって提供される既定の構成は、単なる開始点にすぎません。たとえば、オプティマイザーで反復の数を増やす、オプティマイザーのステップ サイズを減らす、または確率メトリクスのサンプル数を変更すると、パフォーマンスが低下するものの、レジストレーションはある程度改善されます。変更できる各種のパラメーターの詳細については、imregconfig の出力を参照してください。

  • イメージの空間スケールの差が 10% を超える場合、レジストレーションの前に imresize でサイズを変更します。

  • imshowpair または imfuse を使用してレジストレーションの結果を可視化します。

  • 自動化されたワークフローで imregister を使用して、複数のイメージをレジストレーションできます。

  • レジストレーション対象のイメージに関する空間参照情報がある場合は、空間参照オブジェクトを使用して、その情報を imregister に指定します。これによってスケールの差が考慮に入れられるため、imregister でより適切な結果に素早く収束するようになります。

バージョン履歴

R2012a で導入

すべて展開する