はじめに
skimage.filters の rank.otsuで大津の方法で適応的しきい値処理を行う方法について説明する。
解説
モジュールのインポートなど
バージョン
画像の読み込み
下記サイトの画像を使用する。color.rgba2rgbでPNG形式からRGB画像に変換し、color.rgb2grayでグレースケール形式に変換する。最後にimg_as_ubyteでubyte形式に変換する。
マリトッツォのキャラクター
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
計算範囲の設定
適応型閾値処理を行う範囲を設定する。ここでは、半径12のdiskを用いる。selemの大きさは(25, 25)となる。
適応的大津の方法と大域的大津の方法によるしきい値の計算
適応型閾値処理は、rank.otsu(img, selem)でできる。それぞれの画素でしきい値が求まるのでしきい値像が出力される。
大域的大津の方法によるしきい値はthreshold_otsuで計算できる。
結果の表示
subplotsでオリジナル画像としきい値像、適応的大津の方法による2値化像と大域的大津の方法による2値化像を表示すると以下のようになる。
計算範囲を変化させた時の変化
計算範囲のradiusを10から60まで変化させた時の適応的大津の方法による2値化像は以下のようになる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Local Otsu Threshold — skimage v0.12.2 docs
skimage.color — skimage 0.25.0rc2.dev0 documentation
マリトッツォのキャラクター
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
コメント