[ipywidgets] 33. interactで3D画像ビューア

ipywidgets

はじめに

jupyter notebook, labで対話的にパラメータを調整できる機能(ipywidgets interact)を使って、3D画像のスライス画像を対話的に表示する方法について説明する。

コード

解説

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

バージョン

データの読み込み

skimage.dataにある細胞の3D蛍光顕微鏡像を用いる。配列の形状は(z, c, y, x)でc=0は細胞膜の3D像、c=1は核の3D像となる。

スライス画像の表示

60枚あるスライス画像のうち、index=2から4刻みでスライス画像を表示していく。ax.set_title()で各画像にindexの値をタイトルとして表示した。

3Dグラフで立方体を表示する関数

下記ページと同様な3Dグラフ上に立方体とスライス位置を示すポリゴンを作成して表示する関数となっている。3Dグラフのアスペクト比はset_box_aspectで調整した。

How to draw a parallelepiped
I am trying to draw a parallelepiped. Actually I started from the python script drawing a cube as: import numpy as np fr...

interactで任意の位置のスライス画像を表示

左にスライス画像、右にfig.add_subplot(122, projection=”3d”)で3D画像を配置する。
@interact(plane=(0, N – 1))の下に、planeをスライダーで変更した時の処理を記述する。ここでは、ax.cla()で古い画像を消し、新しいplaneの画像と3Dグラフを表示する方法をとっている。

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

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

参考

Explore 3D images (of cells) — skimage 0.24.0 documentation
skimage.data — skimage 0.25.0rc2.dev0 documentation
Using Interact — Jupyter Widgets 8.1.5 documentation

コメント