2

matlab で 3D 画像の形状を探す方法を探しています。現在、実際の 3D サンプル画像はありません。実際、私の 3D 画像は量子化された 2D 画像のセットです。

以下の図は、私が達成しようとしているものです。

ここに画像の説明を入力

上記の例の図は 2D 画像ですが、3D でこれを実行しようとしていることをご理解ください。入力形状にはこれらの「触手」があり、その中から不規則な形状を探す必要があります。ある点から別の点への触手のサイズは変化する可能性がありますが、「一貫した滑らかな」ペースで変化する可能性があります。つまり、最初は大きく、その後徐々に小さくなります. しかし、上の図の右下の赤い部分のように、形が徐々にではなく突然大きくなった場合、これは注目すべきボリュームの 1 つです。これらの形状は丸みを帯びた球状になる傾向がありますが、一部は完全に任意でランダムです。

これまでに次の方法を試しました。

  1. n 回浸食し、n 回拡張します。「触手」は常に対象のボリュームよりも小さいため、ボリュームが小さすぎない限り、この方法は機能します。そして、触手の太い部分が誤検知になるのを何とかする仕組みが必要です。

  2. ハフ変換: この方法は以前に提案されていましたが (バイナリ イメージから円のような形状をセグメント化するから)、より丸い形状のケースのいくつかで機能することがわかりますが、同時に、丸みの少ない、歪んだ、および/または任意の形状は、この方法をすり抜ける可能性があります。

  3. 等値面: 私の入力は 2D 量子化画像のセットであるため、等値面を使用すると、画像を 3D で再構成し、物事をより明確に見ることができます。ただし、この場合、さらに何ができるかわかりません。

では、これらの「触手」からそのような形状を分割するための他のテクニックを提案できる人はいますか?

4

1 に答える 1

2

画像上のすべてのポイントには、触手の一部であるか、関心のあるボリュームの一部であるというプロパティがあります。触手の期待される胴回りがアプリオリに不明な場合、n を設定できないため、1 は機能しません。ただし、触手を消去する n はノードを消去する n よりも小さいことがわかっています。各ポイントを、エッジまでの距離を表す整数に置き換えることができます。事実上、これは、連続する単一ピクセルの侵食と、各ピクセルを消去された反復回数で置き換えることによって行うことができます。これをピクセルでの厚さと呼びましょう。

ここで、境界から典型的な形態学的距離よりも高い領域を検索したいと考えています。これを行うには、最初に画像をスケルトン化し (http://www.mathworks.com/help/toolbox/images/ref/bwmorph.html)、次にスケルトンに沿って厚さの極大値を検索します。これらは、厚みが隣接するポイントよりも大きいスケルトン上のポイントです。

最後に、極大値を厚さで並べ替えます。これは、関心のあるボリュームを偽陽性から分離するのに役立つしきい値です。

于 2011-08-15T22:32:34.253 に答える