はじめに
jupyter notebookの対話的にパラメータを調整できる機能(ipywidgets FloatSlider)で、キャニーフィルター(skimage feature canny)のパラメータsigmaを調整して、画像のエッジを対話的に検出する方法について説明する。
コード
解説
モジュールのインポートなど
画像データの読み込み
画像は下記サイトから取得した。
ミールスのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
画像へのキャニーフィルターの適用
キャニーフィルターについては下記記事で解説した。
[scikit-image] 12. Canny法によるエッジ検出 (feature.canny)
skimage.feature の canny を用いた、Canny法によるエッジ検出
画像の表示
画像はImagegridにより表示した。Imagegridについては下記記事で解説した。
[matplotlib] 19. mpl_toolkits.axes_grid1 の使い方(画像の表示)
axes_grid1のImageGridを用いて複数の画像を表示する方法
左にオリジナル画像、右にキャニーフィルターでエッジを検出した画像を表示する。
ipywidgetsの設定
sigmaの値をFloatSliderで少数点(0.1刻み)で可変的に調整できるようにする。
@interact(sigma=sigma)でipywidgetsを有効にしてから、関数plot(sigma)で、設定したsigmaで新しいエッジ画像を出力し、前の画像を.cla()で消してからimshow()で表示する。
set_titleにより、現在のsigmaの値をタイトルに表示する。
sigmaを変化させたときのエッジ画像の変化
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Widget List — Jupyter Widgets 8.1.5 documentation
コメント