ドキュメンテーション

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

imregister

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

構文

moving_reg = imregister(moving,fixed,transformType,optimizer,metric)
[moving_reg,R_reg] = imregister(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric)
___ = imregister(___,Name,Value)

説明

moving_reg = imregister(moving,fixed,transformType,optimizer,metric) は、参照イメージ fixed を用いてレジストレーションされるように、2 次元または 3 次元のイメージ moving を変換します。moving イメージと fixed イメージはいずれも同じ次元 (2 次元または 3 次元) でなければなりません。transformType は実行する変換のタイプを定義する文字ベクトルです。optimizer はメトリクスを最適化するための方法を記述するオブジェクトです。metric は最適化するイメージ間における類似度の定量的な尺度を定義するオブジェクトです。位置を揃えたイメージ moving_reg が返されます。

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

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

すべて折りたたむ

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

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

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

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

異なるセンサーから得たイメージであるため、モダリティを '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);

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

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

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

'similarity' および 'affine' の変換タイプには、常に無反射変換が伴います。

類似度メトリクスを最適化するメソッド。optimizer オブジェクト RegularStepGradientDescent または OnePlusOneEvolutionary として指定します。optimizer オブジェクトの作成とプロパティの詳細については、registration.optimizer.OnePlusOneEvolutionary および registration.optimizer.RegularStepGradientDescent を参照してください。

レジストレーション時に最適化されるイメージの類似度メトリクス。metric オブジェクト MeanSquares または MattesMutualInformation として指定します。metric オブジェクトの作成とプロパティの詳細については、registration.metric.MattesMutualInformation および registration.metric.MeanSquares を参照してください。

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

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

すべて折りたたむ

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

データ型: logical

最初の幾何学的変換。'InitialTransformation' と幾何学的変換オブジェクト affine2d または affine3d で構成されるコンマ区切りのペアとして指定します。

レジストレーション プロセスで使用されるピラミッド レベルの数。'PyramidLevels' と正の整数で構成されるコンマ区切りのペアとして指定します。

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

データ型: double

出力引数

すべて折りたたむ

変換されたイメージであり、行列として返されます。元のイメージ内の位置に対応せずに塗りつぶされるピクセルはすべて 0 です。

出力イメージに関連付けられている空間参照情報であり、imref2d タイプまたは imref3d タイプの空間参照オブジェクトとして返されます。

ヒント

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

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

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

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

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

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

R2012a で導入

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