1

Matlabで画像処理をしています。私は悪性 (癌性) 肺結節のみを切り出そうとしています。最初に、肺と考えられるすべての結節を切り分けることができました。

ここに画像の説明を入力

次のMatlabコードを使用しました:

segM = % Segmented Lung 
% Segment nodules
BW = im2bw(segM, 0.55);

ここで、すべての良性 (非がん性) 結節をフィルター処理するフィルターを適用したいと思います。私は長い間解決策を探していましたが、それを続ける方法が見つかりませんでした。

セグメント化された肺は次のとおりです。

ここに画像の説明を入力

アップデート:

結節サイズが 3mm を超えると悪性 (がん) と見なされます。画像からmm単位でサイズを計算する方法は?

4

1 に答える 1

1

これを実行した後:

% Segment nodules
BW = im2bw(segM, 0.55);

BW 画像に結節があります。ここで、サイズに基づいて結節を除外するには、すべての結節に楕円を当てはめ、長軸の長さを確認します。これを行うには、regionpropsを使用してMajorAxisLength.

Region props は、バイナリ イメージのすべてのピクセル グループ (接続されたコンポーネント) を検出し、構造体配列内の各グループに関する情報を返します。

次のように呼び出してみてください。

nodules = regionprops(BW, 'MajorAxisLength');

nodules次のように各結節にアクセスできる構造体配列を返します。

>> nodules(1)

ans = 

    MajorAxisLength: 4.6188

>> nodules(1).MajorAxisLength

ans =

    4.6188

これは、最初の結節の長さが 4.6188 ピクセルであることを意味します。イメージと実際のデータの比率がわかっている場合は、そのサイズをミリメートルに変換できます。たとえば、現実世界ではすべてのピクセルが 0.4 mm に等しいことがわかっているとします。次に、その値を掛けてMajorAxisLengthmm単位の値を取得するだけです(そして、必要な結節をフィルタリングします)。

また、フィルターで除外した結節がどこにあるかを知ることも役立ちます。、またはregionpropsなどの追加データを求めることができます。おそらく、 「線」を結節として検出することを避けるために、またはピクセルのグループが「どのように円形であるか」を示す値を調べることも良い考えです。詳細については、ドキュメントを参照してください。CentroidBoundingBoxMinorAxisLengthEccentricity

この他の質問も見てください。役に立つかもしれません:

于 2014-04-19T15:36:36.890 に答える