[scikit-image] 63. 大津の方法による画像の3値化(skimage.filters threshold_multiotsu)

python

はじめに

skimage.filtersのthreshold_multiotsuを用いて、画像を3値化する方法について説明する。

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

画像の読み込み

画像には、マミラリア属の小町を用いる。

大津の方法による多値化

大津の方法による多値化はthreshold_multiotsuでできる。返り値として3つ値に分類したしきい値が得られる。

しきい値を利用して3値化像を作成

np.digitizeで画像データとしきい値を設定することで、しきい値で区切った多値化像が得られる。ここでは3つのしきい値が設定されているので、0,1,2で構成された画像が生成する。

結果の表示

for thresh in thresholds: ax[1].axvline(thresh, color='m')により、大津の方法で得られたしきい値をヒストグラム上で赤い線で示している。

参考

Multi-Otsu Thresholding — skimage v0.16.1 docs
Module: filters — skimage v0.16.1 docs
numpy.digitize — NumPy v1.19 Manual

コメント