特定のフレームがこのように見えるグレースケール TIFF スタックを分析しようとしています。それをフィルター処理 (ガウスぼかしを使用) してから、2 値化します (Otsu のしきい値法を使用)。
うまく機能するMATLABコード:
image_conncomp = bwconncomp(image_binary); # entire stack is held in image_binary
for i=1:image_conncomp.NumObjects
object_size = length(image_conncomp.PixelIdxList{i});
end
サンプル画像の各白い点がピックアップされ、その体積 (ピクセル単位) はかなり正確に によって与えられobject_size
ます。
Python コード:
from skimage import measure
labels = measure.label(image_binary, background=1) # same image_binary as above
propsa = measure.regionprops(labels)
for label in propsa:
object_size = len(label.coords)
Python コードは適切に動作しているように見えます...ただし、検出されたオブジェクトのほとんどobject_size
は 1 ~ 200 で、いくつかは数千ピクセルのサイズになります。
これらの機能の違いは何ですか? オブジェクトのサイズを計算するために Python で別のアプローチを試してみたいと思いますが、別のアプローチを見つけるのに苦労しました。bwconncomp
Matlab の関数の代わりになるものを見つけることができれば、このコードの Python バージョンがあれば素晴らしいと思います。