ドキュメンテーション

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

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 つの MRI イメージのレジストレーション

MRI イメージを読み取ります。

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

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

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

異なるセンサーから取得したイメージのレジストレーションに適した構成を作成します。

[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');

入力引数

すべて展開する

moving — レジストレーションされるイメージグレースケール イメージ

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

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

Rmoving — レジストレーションされるイメージに関連付けられている空間参照情報空間参照オブジェクト

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

fixed — ターゲット方向の参照イメージグレースケール イメージ

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

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

Rfixed — 参照イメージに関連付けられている空間参照情報空間参照オブジェクト

参照イメージに関連付けられている空間参照情報であり、空間参照オブジェクトとして指定されます。

transformType — レジストレーションされるイメージに適用される幾何学的変換'translation' | 'rigid' | 'similarity' | 'affine'

移動イメージに適用される幾何学的変換であり、次の表のいずれかの文字列として指定されます。

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

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

optimizer — 類似度メトリックを最適化するメソッドoptimizer オブジェクト

類似度メトリックを最適化するメソッドであり、optimizer オブジェクトとして指定されます。imregconfig を使用して、optimizer オブジェクト registration.optimizer.RegularStepGradientDescent または registration.optimizer.OnePlusOneEvolutionary を作成します。

metric — レジストレーション時に最適化されるイメージの類似度メトリックmetric オブジェクト

レジストレーション時に最適化されるイメージの類似度メトリックであり、metric オブジェクトとして指定されます。imregconfig を使用して、metric オブジェクト registration.metric.MeanSquares または registration.metric.MattesMutualInformation を作成します。

名前/値のペアの引数

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

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

'DisplayOptimization' — 詳細な最適化フラグfalse (既定値) | true

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

データ型: logical

'InitialTransformation' — 開始する空間変換affine2d または affine3d 空間変換オブジェクト

開始する空間変換。affine2d または affine3d 幾何学的変換オブジェクトとして指定します。

'PyramidLevels' — レジストレーション プロセスで使用されるピラミッド レベルの数3 (既定値) | 正の整数

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

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

データ型: double

出力引数

すべて展開する

moving_reg — 変換されたイメージ数値行列

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

R_reg — 出力イメージに関連付けられている空間参照情報空間参照オブジェクト

出力イメージに関連付けられている空間参照情報であり、空間参照オブジェクトとして指定されます。

詳細

すべて展開する

ヒント

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

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

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

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

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

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