[matplotlib] 62. mpl_connect(‘button_press_event’, onclick)により、画像上でクリックした2点間のプロファイルを表示

ipywidgets

はじめに

matplotlibのbutton_press_eventで取得した座標を用いて、画像上の任意の位置のプロファイルをskimageのprofile_lineで作成し、表示する方法について説明する。

コード

解説

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

データの生成と画像の表示

データの生成と画像の表示は下記記事と同様に行った。

[ipywidgets] 16. IntSliderとprofile_lineで画像の任意の位置の強度プロファイルを取得して表示
jupyter notebookの対話的にパラメータを選択できる機能(ipywidgets IntSlider)で、scikit-image measureのprofile_lineを使って、画像の任意の位置の強度プロファイルを取得して表示する方法について説明する。

plotの作成

クリックで取得した値を用いてプロットを表示するためにデータが空のプロットを作成しておく。

proはskimageのprofile_lineで取得したデータを表示するためにプロットであり、画像の横のax[1]に表示する。

Textarea widgetsの作成と表示

クリックした点の座標をTextareaで表示する。

クリック時の動作の設定

event.button==1は左クリック時の場合であり、event.button==3は右クリックの場合となる。
クリックするごとにリスト(posi)に座標を追加していく。
それぞれのクリックで得られた座標をもとにしてskimageのprofile_lineでプロファイルを取得して表示する。

クリックイベントの有効化

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

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

参考

Event handling and picking — Matplotlib 3.1.2 documentation
Widget List — Jupyter Widgets 8.1.2 documentation
[scikit-image] 71. 画像の強度プロファイルを任意の範囲で表示(skimage.measure profile_line)
skimage.measureのprofile_lineで、任意の範囲の画像の強度プロファイルを表示する方法について説明する。

コメント