3D画像で重複可能な球の半径rを見つける


9

私の現在の問題:

  • 半径rの球の乱数で構成される入力3Dバイナリイメージ(0と1のみを持つ3Dマトリックス)があります。
  • 画像に球がいくつあるかはわかりません。
  • すべての球の半径rは同じですが、半径rはわかりません。
  • 球は画像内のあちこちにあり、互いに重なり合うことができます。
  • 画像の例を以下に示します。

私の要件:

  • 半径rは何ですか?

現在、私は単に画像を平坦化してz軸を取り除き、エッジ検出を実行しています。http//rsbweb.nih.gov/ij/plugins/hough-circles.htmlを使用してハフ変換を試みています

ただし、ハフ変換では、変数の最小半径、最大半径、および円の数を指定する必要があることがわかりました。私は以下のいくつかの試みを試しました:

既知の半径

不明な半径

正しいパラメータが与えられれば、ハフ変換は円をうまく検出できます。しかし、実際のアプリケーションでは、球の数はわかりません。また、最小半径と最大半径を推測しようとするプログラムを作成するのは現実的ではないようです。これを達成する他の方法はありますか?

クロスリンク:https : //math.stackexchange.com/questions/118815/finding-radius-r-of-the-overlappable-spheres-in-3d-image


質問を編集し、入力画像の形式の説明を追加します。

入力画像の形式はバイナリ3D画像です。
Karl

球が互いにオーバーラップできないと言うつもりでない限り、問題は制約が少ないようです。
ObscureRobot 2012年

いいえ、球は互いにオーバーラップできます。最も簡単なケースでは、球がまったく重なっていませんが、これは常に正しいとは限りません。
Karl

回答:


9

ハフ変換と比較した場合、より単純なソリューションであり、計算効率がはるかに高いのは、距離変換を使用することです。

  • 球の表面を見つけます(値が1で、少なくとも1つの隣接する0ピクセルがあるピクセル)。
  • 計算距離変換球体面に対して、だけ球体の内部にあるピクセルに計算を制約します。出力は距離マップになります。
  • 半径は、距離マップの正確な最大値になります。

ハフ変換と比較した場合のこのソリューションのもう1つの利点は、半径の値がはるかに正確になることです。


しかし、2つの球が重なっている場合、最大は、1つの球の反対側から他の球の反対側までの距離が長くなるのではないでしょうか。
内部石

1
@endolithいいえ、この場合、与えられたピクセル(ボクセル)の距離変換値は、最も近い球表面までの距離に対応します。
Alceu Costa 2012

3

ハフ変換は、その一般的な形式では、探している円の半径や、その数を推測する必要はありません。おそらく、あなたはあなたの情報源に惑わされたのでしょう。変換は、最も一般的な形式では計算コストが高くなる可能性があります。事前の情報があれば、アルゴリズムの実行をより迅速かつ正確にすることができます。

入力画像を考えると、ハフ変換が妥当な精度で球の半径を見つけることが期待されます。同じ半径の円の円周上の点を表す画像には多くの点があります。

その半径を考えると、あなたは問題の残りの部分を解読しているように見えるので、これ以上は書きません。

ウィキペディアのハフ変換の説明でも、3D画像で3Dオブジェクトを見つけるために使用できることが示されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.