Re - ImageJで学ぶ!: 2015-07-26

2015年7月28日火曜日

第5回 Imagejを用いて医用画像の基本的な性質を知ろう(2)で学ぶ!

前回はIMageJを用いて、画像の特徴を調べる簡単な方法(画像の大きさ、長さを測る方法や画像の濃度の分布を見る方法など)を紹介しました。今回も引き続き、画像の特徴を見るための諸量について説明します。

臨床応用として、病変の濃淡の程度が問題となる疾患(がんなど)や、病変の細かさの程度が問題となる病変(間質性肺疾患、中内耳疾患、乳がん微少石灰化など)を定量化することが可能となります。
基本を押さえることで、特徴量解析(ウェーブレットを応用した周波数解析、カオスやフラクタルを応用した複雑系による解析、ニューラルネットや遺伝的アルゴリズム、深層学習など)への応用も広がると思います。

画像間演算の使い方


実際に解析をはじめる前に、第3回で解説した通り、画像ファイルフォーマットには圧縮を行うものもあったことを思い出して下さい。解析に利用する画像がどのような画像なのかをしっかりと把握しておきましょう。
まず、画像間演算のウォームアップとして、この圧縮の違いでどの程度、濃淡値に差があるのか、画像を差分して調べてみましょう。
まず、任意のDICOM画像を準備(第4回参照)して、一旦ImageJを使ってJPEGで別名保存しておきます。そして、また、同じ被写体を映しているDICOMとJPEGをImageJで表示し直して、これらの画像を差分してみます。
全く同じ画像であれば、真っ黒(または真っ白)になるはずですが、圧縮の差異があるために画像に輪郭が残ることがわかります。

 (DICOM)
 (JPEG)
 (Process>Image Calcurator
Operationをいろいろ変えてみてください。)
(差分画像 ※WW/WLを強調しています。)

実は、このように輪郭部分に差異が生じるのはJPEG画像の特徴です。
基本的なJPEG圧縮では離散コサイン変換を8画素ブロックごとに施すことによって画像の細かいパターンから粗いパターンを並べ直す処理をします。ImageJでは、離散コサイン変換のプラグイン(DCT_.java)も用意されているため、深く理解したい場合には、ソースコードの中のブロックサイズを変更して比較するなど、処理の違いをみることもできます。

結論としては、JPEGなどの圧縮を行った画像では細かい構造などの情報が落ちてしまうので、病変の細かさの程度が問題となる病変の解析には向かないことが起こりうるということになります。

画像ノイズについて


前述の操作は2つの画像をシンプルに差分しただけでしたが、実際には、どの程度オリジナル画像(原画像)と比べて劣化したのかを定量情報として知りたいと思います。

この劣化の要因は画像生成の段階でもいろいろあり、結果画像として付加された画像劣化の成分はノイズ(雑音)と呼ばれます。画像を標本化(ピクセルごとに区画化する)・量子化(濃淡値の整数化の丸め)するときに原画像からの差が生じます。

この画像のノイズは画像濃度の振幅が関連することから、一般的に、その尺度として信号雑音比(S/N比)を利用します。
この値は電気工学的な表現として、デシベル(dB)として表すことができます。

SN = 10・log10S/N [dB]

しかし、ノイズは分散値(σ2乗)で計測するため、2乗値をとった実効値σでS/Nを計算すると、次の式で求められます。
SN = 20・log10σs/σn [dB]

ここで、σには最大値(8bit画像では"255"、16bit画像では"65535")やオリジナル画像の実効値(RMS値:root mean squared value)、σnには実効値が使われます。実際は、このRMS値として標準偏差が利用されます。

それでは、ImageJを用いてS/Nを求めてみましょう。
前述のオリジナル画像(DICOM)とそのJPEG圧縮画像の、同一の関心領域(ROI)において、画素のヒストグラムを表示し、標準偏差を表示してみます。
2つの画像を開き、どちらかの画像で四角ROIを作成します。そして、Analyze>Tools>ROI Managerを起動し、Addすると、アノテーション情報を記録できます。この状態でもう一方の画像を選択してROI Managerのアノテーションのリストをダブルクリックすると、ROIが複製されます。


この状態で、Analyze>Histogramからヒストグラムを表示してみましょう。今回は、JPEG画像に合わせてDICOM画像の濃淡値を8bitに変更しています(Image>Type>8-bit)。


明らかに両者のヒストグラムの分布形状が異なることがわかります。
そして、オリジナル画像の信号Sを標準偏差とみなして、両者の標準偏差を使ってS/NをGoogle計算器で求めてみると、

SN = 20・log10 (27.565)/(27.549)[dB]

S/Nは0.005[dB]と計算できます。

また、JPEGなどの圧縮画像のS/Nは算出時は、最大値S/N(PSNR)がよく利用されます。この場合、信号Sは最大濃度を入力します。計算してみると、

SN = 20 ・ log10 255/(標準偏差) [dB]

で、それぞれ、19.32程度であることがわかります。

次回も引き続きImageJを使った医用画像の特徴量の測定法について述べます。

Reference
  • 山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(20・4) 2005, p94-96

第4回 医用画像の基本的な性質を知ろう(その1)で学ぶ!

前回は、ImageJで扱うことができるいろいろな画像データの規格について学びました。
今回はDICOM通信による画像送受信についての概略と、実際に医用画像データを用いて、非常に基本的な画像の諸量の測定方法について解説します。
実戦でも役立つことがあると思います。

DICOMフォーマットのサンプル画像


まず、サンプルのDICOM画像を入手できるサイトをご紹介いたします。一部のサイトでは、ユーザー登録が必要です。

D. Clunie氏の公開Webサイト

    http://dclunie.com/index.html#Images

OsiriX

  http://www.osirix-viewer.com/datasets/

dcche.org mDICOM Samples

  http://www.dcm4che.org/confluence/display/WEA/DICOM+Samples

aycan

  http://www.aycan.de/sample-dicom-images.html

National Biomedical Imaging Archive

  https://imaging.nci.nih.gov/ncia/login.jsf


Quantitative Imaging Data Warehouse (QIDW)

  https://www.rsna.org/QIDW/

Rubo Medical

    http://www.rubomedical.com/dicomfiles/index.html

LeadTools

    http://www.leadtools.com/SDK/Medical/DICOM/ltdc19.htm

S. Barré

    http://www.barre.nom.fr/medical/samples/index.html

webMathematica

    http://www.wolfram.com/products/webmathematica/resources/dicom.html

GDCM Extra Data:

    http://www.creatis.insa-lyon.fr/~jpr/

Data From Insight Journal

    http://gdcm.sourceforge.net/wiki/index.php/Sample_DataSet/InsightJournal

他にも、いろいろなサンプルが公開されていますので、探してみてください。

ImageJを使って画像の特徴を知る


1. 画像のスケーリング

早速、ImageJで表示した画像がどのくらいの大きさの実データを表示しているかを調べましょう。
今回はクルーニー氏のリンクから辿って、"UPMC Breast Tomography and FFDM Collection"の画像を取得して、解析を進めます。利用した画像は。CASE8の右側MLO:小葉癌(Lobular carcinoma)のトモシンセス画像です。

画像を表示すると、ウィンドウ上部に横×縦のピクセル数が表示されます。
この例では(266×425 pixels)となっています。


次に、ImageJのメニューからShow infoを選択し、DICOMヘッダーを表示してみると、Pixel Sizeが1×1に設定されていることがわかります。このサンプル画像のDICOMヘッダーには含まれていませんが、画像によっては(0028,0030)Pixel Spacingの値に1ピクセルあたりのサイズ(ミリメートル単位)が表示されることもあります。

今回、(0028,0030)Pixel Spacingの値が不明なので、多目的分解能(point spread function:PSFやaperture transfer functionを無視したピクセルだけを考慮した分解能)は、横幅が266×1=266mm、縦幅が425×1=425mmと仮定します。Pixel Spacingの値によって、この幅が計算できることがわかるということが重要です。

例えば、微少石灰化について、2値化>エッジ抽出>円形度circularityによる算出処理を行って、石灰化の周囲長(perimeter)と円形度を計測してみます。まず、先ほどの画像に四角形ROIをセットして、Image>Duplicateで画像を複製し、 2値化はImage>Adjust>Threshold、エッジはProcess>Find Edgesで処理で行います。



 (二値化してエッジ処理後、領域選択ツールで石灰化を選択した状態)

円形度(circularity)はプラグインとして公開されています。利用するときは、二値化をして領域選択ツール(棒の先が光っているマーク)で解析対象を選択した後、Plugin>Compile and Runでダウンロードしておいたjavaファイルを指定して実行すると、Resultテーブルの右端に円形度が表示されます。


もし、DICOM画像中にスケーリングするためのパラメータがない場合は、撮影の際に定規などのスケールを被写体と一緒に撮影しておけば、およその画素サイズをAnalyze>Set Scaleから設定できます。単位も変更できるので留意が必要です。

2. ヒストグラム

二次元の医用画像はピクセルの集合ですが、この1つ1つのピクセルの持つ値(濃淡値=画素値)の分布を調べるための手法の1つがヒストグラムです。
モノクロ画像(CT)とカラー画像(カラードップラー画像)のヒストグラムを表示してみます。
カラー画像のヒストグラムは、各チャンネルで表示する必要があります(分解の方法は第3回を参照)。






さて、ここでヒストグラム表示のグラフ下に関心領域の全画素数(Count)、画素値の最大値(Max)、最小値(Min)、平均値(Mean)、標準偏差(StdDev)、最頻値(Mode)などが表示されていることがわかります。
これらが画像の特徴を表す代表的な指標となります。また、前述の円形度も特徴の一つです。
画像から得られる特徴はまだまだあります。

次回も引き続きImageJを使った医用画像の特徴量の測定法について述べます。

Reference
  • 参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(20・3) 2005, p108-110