問題タブ [image-registration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 3D B-スプライン近似
3D の B スプラインを拡張して、3 つのパラメーターのスカラー関数を生成できます。
B スプラインは 64 のコントロール ポイント (4X4X4 ボクセル近傍内のデータ値) によって定義され、t、s、r が x、y、z 方向の距離を表す 8 つの中央ボクセルによって囲まれた単位立方体の内部で評価されます。それぞれ。
上記のメモに基づいて、Matlab で関数を作成しました。
関数が true の場合、関数をどのように呼び出す必要がありますか? r、s、tの計算方法がわかりません。
PS: この関数を実行するには、3D にコントロール ポイントと ngrid があります。たとえば、XY の視点から見ると、コントロール ポイント (青) とグリッド (赤) は次のようになります。
上記のメモに基づいて、s、r、および t は、上の図のコントロール ポイントとグリッド間の距離値ですか?
誰かが私が正しい道を進んで理解しているかどうかを知るのを手伝ってくれますか? 3D Bspline で役立つ別の方法やサンプル コードはありますか?
PS: 画像レジストレーション (3d MRI) を行っています。コントロール ポイントは、レジストレーション結果のモーション フィールドです。登録をよりスムーズにするために B-Spline を適用する必要があります。
どうもありがとう
matlab - 2 つの画像の結合ヒストグラムの高速計算
画像レジストレーションのコンテキストでは、2 つの画像の結合ヒストグラムを計算する必要があります。つまり、各ヒストグラム (i,j) には、最初の画像では強度が i で、2 番目の画像では強度が j であるピクセルの数が含まれます。
これを行うには、強度をループします。
ただし、このようなアルゴリズムは私のプロジェクトには遅すぎるため、for ループを使用せずにこれを実行しようとしましたが、これまでのところ、問題を解決する解決策は見つかりませんでした。
皆さんがそれを解決するのを手伝ってくれることを願っています;)
matlab - MATLAB を使用した骨 X 線画像の位置合わせ/登録
骨の表面平面と比較して、カメラ平面のほぼ同じ角度から、異なる時間 (フォローアップ中) に撮影された同じ骨のいくつかの X 線画像があります。ただし、画像内の骨の角度、位置、およびサイズは異なります。
私の目標は、MATLAB を使用して、そのようなイメージに最適なレジストレーション テクニックを使用して (自動的に、つまり、レジストレーション ポイントを手動で選択する必要なく) イメージを位置合わせすることです。
mathworks.com のこのコードを使用してみました: http://www.mathworks.com/help/images/examples/find-image-rotation-and-scale-using-automated-feature-matching.html で、完全に機能しましたインプラントの点を認識し、それらの点に従って画像を位置合わせするためのものですが、同様の骨パターンを認識できないようです。
インプラントではなく骨に「焦点を合わせる」ために、画像からインプラントを完全に削除しました。それでも、detectSURFFeatures は処理する骨の特徴を検出しませんでした。detectSURFFeatures のパラメーターを変更しても、あまり役に立ちませんでした。
十分な特徴点を検出できる限り、非常にうまく機能するため、この全体的なコードに固執したいと思います。
関節や骨折などの骨の特徴/パターンを検出する方法について誰か提案がありますか(detectSURFFeaturesまたは他の同様の機能を使用)?
ノガさん、ありがとう
matlab - 登録後に画像内のポイントの新しい座標を計算する方法は?
画像内の特定の点の XY 座標があるとします。
次に、「類似性」最適化を使用して、この画像に対して非変形レジストレーションを実行します。
ここで、画像内の同じ点に対応する新しい XY 座標を計算したいと思います (登録後)。
tform / 空間参照オブジェクト / 似たようなものを使用して、そうする方法があるはずです...
誰もこれを行う方法を知っていますか?
matlab - スライス数の異なる 2 つのボリュームの画像登録
脳からの 2 つのボリューム画像 (PET と CT、または PET と MR) を登録しようとしています。これらの各ボリューム画像には、異なる数の 2D 画像 (スライス) が含まれています。たとえば、CT
has 150
slices とPET
has 100
slices です。内挿法を使って計算し、CT スライスの数を 100 に減らすことを考えていました。これは正しいアプローチですか? 私に役立つリソースを知っている人はいますか? 疑似コード、または 2 つのボリューム画像を登録するために実行する必要がある手順のように。ありがとうございました :)
matlab - 3D アフィン変換を計算し、それを使用してボリュームを再サンプリングする
2 つのボリューム (vol1
およびvol2
) を登録しようとしています。のサイズはvol1
です40x40x24
。のサイズはvol2
です64 x64x11
。
ここまでで、それらの特徴を抽出して照合しました。pairs
これで、サイズの行列が格納されている 2 つのボリュームに対応する点のセットがあります100x6
( の各行はpairs
、のボクセルの座標であり[x y z X Y Z]
、の対応するボクセルです)。次に、RANSAC アルゴリズムを使用して、3D アフィン変換 T を計算しました。たとえば、T は次のようなものです。(x,y,z)
vol1
[X Y Z]
vol2
いくつか質問があります。まず、このアフィン変換行列は正しく見えますか? 私には正しいように見えます。それが正しい場合、3D アフィン変換を計算する MATLAB の関数affine3dがゼロの行ではなくゼロの列を持っているのはなぜですか (上記の T のように)? 私の変換 T の転置のように見えます。
私の変換が正しい場合、別の問題が発生します。変換 T を使用して vol1 をリサンプリングしようとしましたが、計算されたボクセル座標が負です!!! 私はとても混乱しています。この問題の原因はわかりません。
これが私のコードです。何か問題がありましたらお知らせください。
matlab - 3D RANSAC を使用して 3D アフィン変換を推定する
2 つのボリューム画像 (img1
とimg2
) を登録しようとしています。のサイズはimg1
です40x40x24
。のサイズはimg2
です64 x64x11
。vol1
これまでのところ、それらの特徴 (およびvol2
、画像と同じサイズ) を抽出し、それらを照合しました。
これで、サイズの行列であるペアで格納された 2 つの特徴ボリュームに対応する点のセットがあります(100x6
ペアのすべての行は、 のボクセルの座標であり、 の対応するボクセルの座標です)。[x, y, z, X, Y, Z]
(x,y,z)
vol1
[X Y Z]
vol2
現在、RANSAC アルゴリズムを使用して 3D アフィン変換 T を推定しようとしています。以下のコードを記述しましたが、出力変換 T を取得してサンプル ボクセル座標を掛けると、問題があると思います。 vol1から、負の座標を取得!!!
以下は、3D RANSAC アルゴリズムの実装です。このリンクで 2D RANSAC 実装を使用しました。何か問題がありましたらお知らせください。