はじめに
jupyter notebookの対話的にパラメータを調整できる機能(ipywidgets RadioButtons, IntSlider)でデータを取得する方向を選択し、画像中の任意の位置のデータを線で表示する方法について説明する。
コード
解説
このコードは下記の投稿のコードに加筆したものとなっている。そのため、変更点のみを解説する。
[ipywidgets] 5. IntSliderで画像の任意の位置の横方向データをラインで表示
jupyter notebookの対話的にパラメータを調整できる機能(ipywidgets IntSlider)で画像中の任意の位置の横方向データを線で表示する方法について説明する。
画像に表示する線とデータを表示する線
axhlineでx軸に対して平行なマゼンタの線を表示する。データの線もマゼンタにする。
axvlineでy軸に対して平行な緑の線を表示する。データの線も緑にする。
ipywidgetsの設定
ラジオボタンを設定する。xまたはyを選べるようにする。
directionをxとしたときの処理は、y軸に平行な画像中の線とデータの線を、空のデータを設定することで消す。そして、x軸に平行な線にデータをセットすることで、画像中の線とデータの線を表示する。
else: の処理は、directionをy とした場合になる。前述の処理のxとyを入れ替えた処理となる。
ラジオボタンをyにしたときの図
任意の位置の任意の方向のデータを取得したいときは下記記事で解説したskimageのprofile_lineを用いると良い。
[matplotlib] 62. mpl_connect('button_press_event', onclick)により、画像上でクリックした2点間のプロファイルを表示
matplotlibのbutton_press_eventで取得した座標を用いて、画像上の任意の位置のプロファイルをskimageのprofile_lineで作成し、表示する方法について説明する。
参考
Jupyter Widgets — Jupyter Widgets 8.1.5 documentation
コメント