前回は、CT画像を表示するときにWWの設定をして表示するという事をやりましたが、今回はWW,WLの調整をスライダーを使って調整してみる
をやってみたいと思います。
いままでは、jupyter notebookを使っていろいろとやってきましたが、今回からはエディターを使ってやっていきたいと思います。
エディタは、Pycharm,Atom,Visualstudio等様々な種類がありますが、私自身はPycharmを使用しています。(有償のソフトですが、一部の機能であれば無償です。もちろん私は無償の範囲内で十分なので無償で利用中です。)
それでは、早速コードを表示してみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# -*- coding: utf-8 -*- import pydicom from matplotlib import pyplot as plt from matplotlib.widgets import Slider #matplotlibのSliderというウイジットを使用します。 ds = pydicom.dcmread(‘CT000060’) low = –140 #WWを-140~260の範囲で表示したいため high = 260 #WLは-140~260の中央値である60になります。 fig = plt.figure(figsize=(5, 6)) #画像、スライダを表示する領域の設定 img = plt.imshow(ds.pixel_array, cmap=plt.cm.bone, vmin=low, vmax=high) #imgという変数に画像表示設定を入れる。 wl_slider_pos = plt.axes([0.1, 0.08, 0.8, 0.03]) ww_slider_pos = plt.axes([0.1, 0.01, 0.8, 0.03]) #ww、wlのスライダを表示する位置の設定 wl_slider = Slider(wl_slider_pos, ‘wl’, 0, 500, valinit=175) ww_slider = Slider(ww_slider_pos, ‘ww’, 0, 2000, valinit=350) #ww、wlのスライダのインスタンスを作成 def update(slider_val): #スライダを動かしたときの処理 ww = ww_slider.val wl = wl_slider.val #ww、wlのスライダの値を取得 low = int(wl – ww/2) high = int(wl + ww/2) #wwの上限値と下限値を計算 img.set_clim([low, high]) #画像表示の設定imgのlow,highの値を更新 fig.canvas.update() #表示している画像を更新 wl_slider.on_changed(update) ww_slider.on_changed(update) #スライダーを動かしたときの処理を指定(25行目に) plt.show() #画像を表示 |
上記のように表示できます。