Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the easy-fancybox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the urvanov-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the advanced-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。lancr ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114
CT画像を好みの条件で表示する | 診療放射線技師がPythonをはじめました。

CT画像を好みの条件で表示する

前回までの投稿で表示してきた画像ですが、 通常私たち診療放射線技師が医師に提供する画像コントラストとはかけ離れた画像でした。

そこで、今回は画像コントラストを好みの条件にて表示する方法をやっていきたいと思います。


WW(ウインドウレベル),WL(ウインドウ幅)のおさらい


CT画像は水を0、空気を-1,000として規定されており、骨は1,000以上のCT値を持っています。CT値の算出式は以下

CT値(Hounsfield Unit ) = ( μa - μw ) /  μw  × k

μa : 物質の減弱係数

μw : 水の減弱係数 

k : 定数     

CT画像を表示するときはWL,WWの設定をしますが、WLを中心としてWWの半分以上のCT値はすべて白く、一方WWの半分以下のCT値は黒く表示します。

WLを中心としたWW内のCT値は、256等分にされグレイスケールに変換されてモニタ上に表示されます。

広告
デル株式会社

なぜ、まったりとした画像になってしまう?


pythonで画像表示した場合(他の言語で表示した時の事は分かりません・・・・)、CT値の最大値から最小値の間で256分割され、グレイスケールに変換されます。

例えば、上の画像であれば、空気のCT値が‐1,000、一番高いCT値が骨でおそらく1,000ぐらいだと思われます。

(計測結果、最大値1211,最小値-1015でした)


‐1,000から1,000までの2,000のCT値を256階調に分割すると1階調あたり約7.8のCT値を丸め込む形となります。

肝臓のコントラストは全くついておらず、肝動脈や下大静脈の位置すら同定できません。


この画像を WW250,WL50で表示すると


肝動脈の位置や、下大静脈の位置をはっきりと確認できます。

上の画像はWW250で表示していますので、WW250を256階調で表示します。

よって、1階調あたり0.8のCT値を表示することになります。

上の画像で肝臓のCT値は最大値89、最小値31の間に分布しており、58の範囲に収まっています。

pythonで表示した場合、肝臓のコントラストはCT値、7程度の範囲で表現されることになりますが、 WW250、WL50で表示した場合は肝臓のコントラストは、CT値46程度の範囲で表現されますので肝臓の評価が可能となります。


広告
HP Directplus -HP公式オンラインストア-

CT画像を好み条件で表示するためには


それではCT画像を表示する際に、好み条件にて画像表示するにはどうしたらいいのでしょうか?

いままでDICOM画像を表示するのコードは以下を使用してきました。


好みの条件として画像を開くには、7行目のコードの部分で設定します。 。

plt.imshow(ds.pixel_array,cmap=plt.cm.bone)

の部分を以下に変更します。

plt.imshow(ds.pixel_array,cmap=plt.cm.bone,vmin=-1000,vmax=300)

通常、表現したいCT値の領域をWWとして指定し、その中心をWLとして指定してあげるわけですが、pythonでは、最小のCT値と最大のCTを指定します。

”vmin=”

で最小のCT値を指定し

vmax=”

で最大のCT値を指定してあげることで、好みの条件にて表示することが可能となります。

WLを設定する必要はなく、ただ単にWWの最小値と、最大値の設定でお好みの条件にて表示することができました。

以下、コードです。



ご覧いただききありがとうございました。

次回は、WW,WLの設定をスライダーを用いて設定する方法を載せれればと考えています。

広告
上新電機 パソコン買取サービス

Categories:

, ,

Tags: