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