主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

マルチモーダル3次元医用画像のレジストレーション

この例では,Imregister.imregtformおよびimwarpを使用して2つのボリュームデータセットを自動的に位置合わせする方法を示します。データセットは,同じ患者について別々の時期に取得したCTイメージとT1強調MRIイメージです。他の手法とは異なり,Imregister.およびimregtformでは特徴の検出やコントロールポイントの使用は行いません。多くの場合,強度ベースのレジストレーションは医療画像および遠隔測定イメージに適しています。

この例で使用している3次元CTとMRIのデータセットは,回顾性图像配准评估(RIRE)数据集の一般来说迈克尔·菲茨帕特里克博客から提供されたものです。

手順1:イメージの読み込み

この例では,同じ患者の头部の3次元イメージを2つ使使し。レジストレーションの问题は,一方のイメージが固定で他が移イメージであると见ますます。イメージを固定イメージに位置位置することですです。この例で,固定イメージはt1强调mriイメージです。レジストレーションを行うです。データデータ,回顾性图像注册评估(revire)ファイル形式で保存されています。multibandreadを使用して,イメージデータを含むバイナリファイルを読み取ります。関数helperReadHeaderRIREをを使し,それぞれのイメージに关键词付けられいるメタデータををししますファイル形式の详细についてははのリンクを使使确认て确认确认しててしししてRIREデータ形式

固定主人= HelperReadheaderre(“rirePatient007MRT1.header”);movingHeader = helperReadHeaderRIRE (“rirePatient007CT.header”);固定volume = multibandread(“rirePatient007MRT1.bin”...[fixedHeader。行,fixedHeader。列,fixedHeader。片),...“int16 = >单”0,“bsq”“ieee-be”);movingVolume = multibandread (“rirePatient007CT.bin”...[movingHeader。行,movingHeader。列,movingHeader。片),...“int16 = >单”0,“bsq”“ieee-be”);

関数升降杆素质は3次元レジストレーションの結果の質を判断するために提供されている補助関数です。ビューは対話方式で回転でき,両軸は一致したまま動きます。

helperVolumeRegistration (fixedVolume movingVolume);

また,imshowpair.を使用して固定ボリュームと移动ボリュームの1つの平面を表示し,ボリュームの全体的な配置を把握することもできます。imshowpair.で重ね合わせたイメージで,灰色の领域は类似した强度の领域に対応し,マゼンタおよび绿色の领域は片方のイメージが他方のイメージよりも明るい部分を示します。imshowpair.を使用して,各ボリュームの中心を通る軸スライスに沿ってイメージボリュームの位置ずれを観察します。

centerFixed =大小(fixedVolume) / 2;centerMoving =大小(movingVolume) / 2;图imshowpair (movingVolume (:,:, centerMoving (3)), fixedVolume (:,:, centerFixed (3)));标题(“未登记的轴向片”

手順2:初期レジストレーションの設定

関数imregconfigを使用すると,Imregister.での使用に適したオプティマイザーおよびメトリクスの構成を簡単に選択できます。これら2つのイメージは,MRIとCTという2つの異なる様式で撮画したものであるため,“多通道”オプションが適しています。

[优化器,度量标准] = imregconfig('多峰');

Imregister.で使用されるアルゴリズムは,入力イメージの解像度や位置に関する空間参照情報が指定されると,より適切な結果に素早く収束します。この例では,CTとMRIのデータセットの解像度がイメージメタデータで定義されています。そのメタデータを使用して,レジストレーションの入力引数として渡す空間参照オブジェクトimref3dを作物成します。

RFIXED = IMREF3D(大小(固定volume),fixedheader.pixelsize(2),fixedheader.pixelsize(1),固定主机.Slicethickness);rmoving = imref3d(size(thopingvolume),motherheader.pixelsize(2),voldheader.pixelsize(1),搬家人.slicethickness);

空间参照オブジェクトのは,关键词られているイメージのワールド座标系における位置各次元のピクセルををし次元のxworldlimitsプロパティは,动弹ボリュームx次元方向向位置定义のます.pixelextentinworldプロパティは,x次元における(列に沿った)各ピクセルのサイズワールド単位定义定义ますます系のしワールド系系x轴の0.3269からx轴の0.3269から334.97ににおり,各ピクセルのは0.6536 mmです。単位がミリメートルなのは,空间参照の作品成员ささたヘッダー情情ミリメートル単位であっですですimミリメートルextであったですプロパティ,动弹イメージボリューム全范囲によって単位で决めます范囲ワールドで决められ。

rmoving.xworldlimits.
ans =1×20.3268 - 334.9674
rmoving.pixelextentinworldx.
ans = 0.6536
rmoving.imageextentinworldx.
ans = 334.6406.

2つのボリューム間の位置のずれには,平行移動,拡大縮小,回転が関わっています。イメージのレジストレーションには相似変換を使用します。

まず,レジストレーション结果の质を确认ためため,Imregister.を使使し,直接表示と観察のできる済み済みイメージのボリュームボリューム取得取得しし

レジストレーション結果で収束の結果を向上させるために,オプティマイザーのInitialRadiusプロパティに既定以外の設定を指定します。

优化器。InitialRadius = 0.004;movingRegisteredVolume = imregister(movingVolume,Rmoving, fixedVolume,Rfixed,'死板的'优化器,指标);

再びimshowpair.を使用して,レジストレーション済みボリュームの中心を通る軸スライスの配置を調べるプロセスを繰り返し,レジストレーションがどの程度適切に実行されているかを把握します。

图imshowpair (movingRegisteredVolume (:,:, centerFixed (3)), fixedVolume (:,:, centerFixed (3)));标题('注册量的轴向切片'

上记の轴スライスから,レジストレーションレジストレーションが适切に実されているいるように见え见えれ再びてててててててて再び再び升降杆素质を使用してレジストレーションされたボリュームを表示し,レジストレーションが適切かどうかを引き続き判断します。

helperVolumeRegistration (fixedVolume movingRegisteredVolume);

手順3:移動イメージを固定イメージに位置合わせする3次元幾何学的変換の取得

関数imregtformは,几何学的変换変换推定うううにに。Imregister.で使用されます。imregtformImregister.と同じアルゴリズムを使用し,Imregister.と同じ入力引数をとります。Imregister.の結果として出力されたボリュームを視覚的に調べると,レジストレーションが適切に実行されたことを示しているため,このレジストレーション結果に関連付けられている幾何学的変換を取得するために同じ入力引数を用いてimregtformを呼び出すことができます。

geomtform = imregtform(movingVolume,Rmoving, fixedVolume,Rfixed,)'死板的'、优化、指标)
GeomtForm =带有属性的Affine3D:T:[4x4双]维度:3

imregtformを実行する,几何学的変换オブジェクトがられられます。

geomtform。T
ans =4×40.9704 -0.0143-0.2410 0 0.0228 0.0228 0.0324 0 0.2404 -0.0369 0.9700 0 -15.8648 -17.5692 29.1830 1.0000

幾何学的変換のtransformPointsForwardメソッドを使用して,レジストレーションの結果として移動イメージの点[u, v, w]がマッピングされる位置を判定することができます。imregtformに対し空間参照入力が指定されたので,幾何学的変換によって,移動イメージから固定イメージへとワールド座標系の点がマッピングされます。以下では,transformPointsForwardメソッドを使用して,ワールド座標系における移動イメージの変換後の中心位置を判定しています。

centerXWorld =意味着(Rmoving.XWorldLimits);centerYWorld =意味着(Rmoving.YWorldLimits);centerZWorld =意味着(Rmoving.ZWorldLimits);[xWorld, yWorld zWorld] = transformPointsForward (geomtform、centerXWorld centerYWorld, centerZWorld);

RFIXEDのworldtosubscriptメソッドメソッド使使して,移动ボリュームの中心

(r、c、p) = worldToSubscript (Rfixed、xWorld yWorld, zWorld)
r = 116
c = 132
p = 13

手顺4:驾驶イメージボリュームへの何何変换変换の推定の适

関数imwarpを使用して,imregtformで推定された幾何学的変換を3次元ボリュームに適用することができます。“OutputView”の名前/値を使用して、リサンプリングされた出力イメージのワールド範囲と解像度を決める空間参照引数を定義します。固定イメージに関連付けられている空間参照オブジェクトを使用することで、Imregister.と同じ結果を得ることができます。これによって,ワールド範囲と解像度が固定イメージと移動イメージで等しい出力ボリュームが作成されます。両方のボリュームでワールド範囲と解像度が同じになれば,移動ボリュームと固定ボリュームの各サンプル間でピクセル同士が対応するようになります。

vishrogisteredvolume = imwarp(移动volume,rmoving,geomtform,“双三次的”“OutputView”, Rfixed);

再びimshowpairを使用して,imwarpで作成されたレジストレーション済みボリュームの中心を通る軸スライスを表示します。

图imshowpair (movingRegisteredVolume (:,:, centerFixed (3)), fixedVolume (:,:, centerFixed (3)));标题('注册量的轴向切片'

参考

||||