これを実行した後:
% 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 に等しいことがわかっているとします。次に、その値を掛けてMajorAxisLength
mm単位の値を取得するだけです(そして、必要な結節をフィルタリングします)。
また、フィルターで除外した結節がどこにあるかを知ることも役立ちます。、またはregionprops
などの追加データを求めることができます。おそらく、 「線」を結節として検出することを避けるために、またはピクセルのグループが「どのように円形であるか」を示す値を調べることも良い考えです。詳細については、ドキュメントを参照してください。Centroid
BoundingBox
MinorAxisLength
Eccentricity
この他の質問も見てください。役に立つかもしれません: