[ipywidgets] 9. FloatSliderでCanny filterのsigmaを調整してエッジ検出

ipywidgets

はじめに

Jupyter Notebookでは、ipywidgetsという機能を使うことで、パラメータを対話的に調整しながら結果をリアルタイムで確認することができます。この記事では、画像処理におけるエッジ検出技術の一つであるCanny filterを例に、FloatSliderウィジェットを使って、sigma(ガウシアンフィルタの標準偏差)パラメータを調整しながら、エッジ検出の効果を視覚的に確認する方法を解説します。これにより、最適なパラメータ設定を対話的に見つけることができます。

コード

解説

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

画像データの読み込み

画像は下記サイトから取得しました。

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

画像へのキャニーフィルターの適用

キャニーフィルターについては下記記事で解説しました。

[scikit-image] 12. Canny法によるエッジ検出 (feature.canny)
skimage.feature の canny を用いた、Canny法によるエッジ検出

画像の表示

画像はImagegridにより表示しました。Imagegridについては下記記事で解説しました。

[matplotlib] 19. mpl_toolkits.axes_grid1 の使い方(画像の表示)
Matplotlib の拡張モジュール mpl_toolkits.axes_grid1 を使って複数画像を効率的に表示する方法を解説。ImageGrid による整然としたレイアウト、スケールバー・カラーバーの追加など、科学計算や画像処理に役立つ可視化テクニックを紹介しています。

左にオリジナル画像、右にキャニーフィルターでエッジを検出した画像を表示します。

ipywidgetsの設定

FloatSliderを使用してsigmaの値を0.1刻みで調整できるようにします。

@interact(sigma=sigma)でipywidgetsを有効にした後、plot(sigma)関数を呼び出します。この関数は指定したsigma値で新しいエッジ画像を生成し、.cla()で前の画像を消去してからimshow()で表示します。

set_title関数を使って、現在のsigma値をグラフのタイトルに表示します。

sigmaを変化させたときのエッジ画像の変化

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

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

まとめ

本記事では、ipywidgetsのFloatSliderを使用して、Canny filterのsigmaパラメータを対話的に調整する方法を紹介しました。この手法により、画像のエッジ検出において最適なパラメータ値を視覚的かつ効率的に見つけることができます。Jupyter Notebookの対話的な機能を活用することで、画像処理の実験がより直感的かつ効率的になります。

参考

Widget List — Jupyter Widgets 8.1.7 documentation

コメント