[scikit-image] 97. 適応的しきい値処理による画像の2値化(skimage.filters threshold_local)

matplotlib

はじめに

skimage.filters の threshold_localで適応的しきい値処理を行う方法について説明する。

解説

モジュールのインポートなど

バージョン

画像の読み込み

下記サイトの画像を使用する。color.rgba2rgbでPNG形式からRGB画像に変換し、color.rgb2grayでグレースケール形式に変換する。最後にimg_as_ubyteでubyte形式に変換する。

袋に入ったコーラのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

適応的しきい値と大津の方法による大域的しきい値の計算

block_sizeで計算範囲を設定し、適応型しきい値処理をthreshold_localで行う。それぞれの画素でしきい値が求まるのでしきい値像が出力される。

大津の方法による大域的しきい値はthreshold_otsuで計算できる。

結果の表示

subplotsでオリジナル画像としきい値像、適応的2値化像と大域的2値化像を表示すると以下のようになる。

methodを変化させた時の2値化像

methodは{‘generic’, ‘gaussian’, ‘mean’, ‘median’}から選択することができ、‘generic’の場合は、param parameterに任意の式を設定することができる。

block_sizeを変化させた時の2値化像

block_sizeを変化させた時の2値化像は下のようになる。

sigmaを変化させた時の2値化像

method=”gaussian”の場合、parameterでsigmaの値を設定できる。上が2値化像、下がしきい値像となる。

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

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

参考

skimage.filters — skimage 0.23.0rc0.dev0 documentation
skimage.color — skimage 0.23.0rc0.dev0 documentation
袋に入ったコーラのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

コメント