323.4K Views
January 26, 19
スライド概要
平成30年度 近畿支部 学術研究発表ブラッシュアップセミナー
診療放射線技師です.
研究に使える便利な フリーソフト: ImageJ 大阪市立大学医学部附属病院 片山 豊
ImageJ とは (ImageJ ≠ Photo Shop) • パブリックドメインの画像処理ソフトウェア • 1987 年: NIH Image リリース • 開発言語 Pascal • Mac でのみ動作 • 電気泳動のゲルのバンドを定量化 • 1997 年: ImageJ (Image Processing and Analysis in Java) リリース • Java の仮想マシン上で動作 • Windows,Mac,Linux で動作 • プラグインやマクロによる機能拡張が可能 • 2007 年: FIJI リリース • ImageJ をベースに画像処理に特化 (後に ImageJ2 ベース) • 豊富な 3 次元画像解析機能 • スクリプティング機能 (JavaScript,Jython,ImageJ Macro…) • 2009 年: ImageJ2 リリース • ImageJ と下位互換性あり • プラグインを含めた自動アップデート • 改良されたスクリプティング機能
ImageJ のインストール • ImageJ の HP (https://imagej.nih.gov/ij/) より, インストールする環境に合わせてダウンロード
Java のインストール • Java の HP (https://www.java.com/) より, インストールする環境に合わせてダウンロード
FIJI,ImageJ2 のインストール • FIJI • https://fiji.sc/ • ImageJ2 • https://imagej.net/
ImageJ のインターフェース Windows (7) ← Menu Bar ← Tool Bar ← Status Bar MacOS (High Sierra) ← Menu Bar ← Tool Bar ← Status Bar Windows, MacOS ともに同じインターフェース
各ソフトのインターフェース ImageJ FIJI ImageJ2 ⇒ Plugins -> Utility -> Find Commands の機能拡張 各ソフトともに同じインターフェース
ImageJ と FIJI の比較 -> Image <ImageJ> <FIJI> -> Process <ImageJ> -> Analyze <FIJI> <ImageJ> <FIJI>
ImageJ を研究に利用する利点 • ImageJ は非圧縮の DICOM 画像に対応 • 放射線画像を取り扱える • 多彩な形式で画像を出力 • PowerPoint などに貼り付ける画像を作成が可能 • 簡単な画像処理や画像解析機能 • 画質改善や画像評価が可能 • コーディングが必要となるが, 必要な機能をユーザーが追加できる • 誰もしていない新しいことをできる可能性
目次 • 画像表示 • 画像解析 • 画像処理 • 機能拡張
画像 (二次元) の表示方法 - Image • ファイルを ImageJ にドラッグ • File -> Open -> 画像を選択 • 複数の画像を同時に表示可能 • 全ての操作は選択されている ウィンドウに対して適用 • 選択されているウィンドウに注意 Open Samples > Lena (68K)
ImageJ が対応している形式 • 整数グレイスケール画像 (8-bit and 16-bit) • 浮動小数点グレースケール画像 (32-bit) • カラー画像 (24-bit RGB and 32-bit RGBA) ⇒ TIFF,非圧縮 DICOM,AVI など様々な形式に対応 • DICOM 画像の表示 • Tag 情報の Rescale Intercept,Slope より画素値を変換 ⇒ CT 画像は CT 値,PET 画像は Bq/cc 値として画像化 • ビットレートの変更 • 低ビットレートに変換すると量子化誤差大 • カラー画像はグレイスケール画像に変換 • gray = (red + green + blue)/3 • gray* = 0.299×red + 0.587×green + 0.114×blue *: Edit -> Options -> Conversions “Weighted RGB to Grayscale Conversion” • MATLAB (rgb2gray): 0.2989×red + 0.5870×green + 0.1140×blue
擬似カラー表示 • Image -> Lookup Tables • グレイスケール画像に,擬似的に色を付けて表示 • ピクセル値に色を対応 ⇒ Lookup Tables • Image -> Color -> Display LUTs で一覧表示
画像 (多次元) の表示方法 - Stacks • フォルダを ImageJ にドラッグ • File -> Import -> Image Sequence -> フォルダを選択 • Image -> Stacks -> Images to Stack • 複数の画像を同時に表示可能 • 全ての画像サイズが同一 • Multi Frame DICOM は File -> Open Open Samples > T1 Head (2.4M, 16-bit)
多次元配列の表示 • Image -> Stacks -> Make Montage • スタック内の画像を格子状に表示 • 全ての画像を最小分割数で 表示できる初期値
多次元配列の表示 • Image -> Stacks ->Reslice & Make Montage • スタック内の画像を 直交断面に再構築 • Output spacing (mm) は Tag 情報から Pixel Sizeが初期値として入力
直交三断面の作成 • Image -> Stacks -> Orthogonal Views • • • • スタック内の画像の直交三断面を作成 直交三断面の基準線が同期 表示させたい場所を確認できる 任意断面の解析に便利
三次元表示 • Image -> Stacks -> 3D Projection DICOM Header から 付帯情報が読み込まれ 初期値が入力されている
目次 • 画像表示 • 画像解析 • 画像処理 • 機能拡張
画像解析 • Analyze • • • • • • • • • • • • Measure (計測) Analyze Particles (粒子解析) Summarize (集計) Distribution (粒子のサイズ分布ヒストグラム) Label (ラベル) Clear Results Set Measurements (結果の消去) Set Scale (スケールの設定) Calibrate (キャリブレーション) Histogram (ヒストグラム) Surface Plot (表面プロット) Gels (ゲル) Tools (ツール) • Analyze Line Graph (線グラフ解析) • ROI Manager (ROI マネージャ) • Calibration Bar (キャリブレーションバー)
Catphan®600 の画質を比較 • 異なる線量で撮影した Catphan® の画質を比較 • 関心領域 (Region of Interest: ROI) を設定 • 平均値・標準偏差を比較 120 kV, 350 mA 120 kV, 100 mA
Catphan®600 の均一性評価 • Uniformity Module を用いた均一性評価 • 5 カ所に関心領域を設定 • 平均値・標準偏差を評価 Catphan®600 のマニュアルより引用
関心領域の設定 - フリーハンド • Tool Bar の area selection tools より 関心領域 (Region of Interest: ROI) の設定 <angle tool> <line selection tool> <area selection tools> ROI を選択時, ステータスバーに, 左上角の座標 (x, y) や サイズ (w, h) などが表示 赤い三角形 (▼) の付くアイコンは 右クリックで機能切り替え可
関心領域の作成 - 数値入力 • Analyze -> Tools -> ROI Manager • More -> Specify • 数値入力により ROI の設定 • 関心領域のサイズ • 座標 • 形状 (矩形・円形) 右クリック
描画関係の関数 - 位置関係 四角形 円形 (x, y) (x, y) Height • • • • Height Width 画像の左上が (0, 0) ← (1, 1) ではない Oval: 円形 Constrain square/circle: 正方形・正円 Center: 座標が中心 Width
関心領域の保存 • Analyze -> Tools -> ROI Manager • Add • 関心領域を設定後 [Add] • 関心領域の位置と番号が記録 • More -> Save • ROI Manager に 記録されている ROI を保存 • 単一の ROI は .roi 形式で出力 • 複数の ROI は .zip 形式で出力 • More -> Open • 保存された ROI の読込可能
計測項目 測定項目 測定できるもの Area 面積 (画素サイズが設定されていれば対応した単位で表示) Mean Gray Value 選択領域の平均値 Standard Deviation 選択領域の標準偏差 Modal Gray Value 選択領域の最頻値 Min & Max Gray Value 選択領域の最小 & 最大値 Centroid 選択領域の重心 Center of Mass 選択領域の重心 (輝度で重み付け) Perimeter 選択領域の外周の長さ Bounding Rectangle 選択領域を囲む最小の四角形の座標 Fit Ellipse 選択領域にフィットする楕円 Shape Descriptors 形状記述を計算 (Circularity: 4π×面積 / 周長2 (1 = 真円)) Integrated Density 選択領域の全画素の総密度 [IntDen: 面積と平均値の積][RawIntDen: 画素値の総和] Median 選択領域の中央値 Skewness 平均値の 3 次モーメント (歪度: 平均値から分布の非対称性) Kurtosis 平均値の 4 次モーメント (尖度: 平均値から分布ピークの度合い) Area Fraction 閾値設定した割合 (値が 0 でない画素の割合) Stack Position スタック (ハイパースタック) 内での位置 (Ch,Slice,Frame) Analyze -> Set Measurements 関心領域内の評価項目を選択 Analyze -> Measure 評価項目を計測
線量の異なる画像の均一性評価 • Analyze -> Tools -> ROI Manager -> Measure • Analyze -> Measure • 表示している画像に設定している ROI の統計値を取得 120 kV, 350 mA • Mean: 13.695 - 14.708 • StdDev: 12.389 - 14.866 120 kV, 100 mA • Mean: 12.967 - 14.215 • StdDev: 20.827 - 24.349
目次 • 画像表示 • 画像解析 • 画像処理 • 機能拡張
画像処理 • Process • • • • • • • • • • • • • • Smooth (スムージング) Sharpen (シャープネス) Find Edges (境界の検出) Find Maxima… (極大点の検出) Enhance Contrast… (コントラスト強調) Noise (ノイズ) Shadows (シャドウ) Binary (二値化) Math (計算) FFT (フーリエ変換) Filters (フィルタ) Image Calculator… (画像演算) Subtract Background… (バックグラウンド減算) Repeat Command (繰り返し)
Filters: 平滑化 / 鮮鋭化 / 輪郭検出 • Process Original Smooth • Process -> Filter Gaussian Sharpen Find Edges Unsharp Mask Variance
Filters: 畳み込み • Process -> Filters -> Convolve • テキストエリアに入力された カーネルより空間的な畳み込みを行う • カーネルは幅のサイズが奇数の正方形 • Excel で作成したテキストの読込が可能 エンボス処理 輪郭抽出処理 -2 -1 0 0 1 0 -1 1 1 1 -4 1 0 1 2 0 1 0
低線量画像にフィルタ適用 • 低線量で撮影した Catphan Phantom の画像に ガウシアンフィルタを適用し,均一性を評価 120 kV, 350 mA 120 kV, 100 mA • Mean: 13.695 - 14.708 • StdDev: 12.389 - 14.866 • Mean: 12.967 - 14.215 • StdDev: 20.827 - 24.349 120 kV, 100 mA with Gaussian Filter σ = 0.7 • Mean: 12.975 - 14.232 • StdDev: 13.993 - 16.959
ヒストグラム解析 • Analyze -> Histogram • ヒストグラムの形状から分かる画像の特性 暗い画像 左側に偏る 明るい画像 右側に偏る 高コントラスト 低コントラスト 中央部が平坦 中央部に偏る Standard Image Data-BAse (SIDBA) Barbara (Monochrome Image)
ヒストグラム平坦化 • コントラストが高い方が構造体の視認性は向上 • ヒストグラムが全体的に 平均化 (平坦化) されるように画素値を置換 • コントラストが高くなり視認性が向上 • Process -> Enhance Contrast • ヒストグラム平坦化を適用した画像を CNN により学習 • 放射線画像の自動診断を行う研究に適用 Original Enhance Contrast
ヒストグラム平坦化 元画像 処理画像 日本放射線技術学会 標準ディジタル画像データベース[胸部腫瘤陰影像]
カラー画像のコントラスト改善 • カラー画像のコントラスト改善には, 各チャンネル毎にコントラストの調整が必要 • 各チャンネルに分けずにコントラストを 調整すると思った効果が得られない.
カラー画像のコントラスト改善 • Image -> Color -> Split Channels • red,green,blue の各チャンネルに画像を分割後, 各チャンネルにヒストグラム平坦化を適用 • Image -> Color -> Merge Channels • コントラストを調整された全てのチャンネルを併合 <各チャンネルに分割> <各チャンネルを調節> (red) (green) (blue)
画像出力 • File -> Save As • 様々な形式で画像の出力が可能 • DICOM 形式での保存 • Plugin により実現 • Tiff 形式で保存 • 16-bit に対応 • マルチフレームの出力に対応 • 付帯情報を保持 ⇒ 匿名化にはならない • 画素値をテキストで出力 (Text Image) • 数値データとして取扱 • Excel でも表示可能 • 動画の作成も可能 • AVI,Animated GIF ⇒ PowerPoint に掲載可能
PowerPoint 等での拡大 ImageJ 拡大率: 100% PowerPoint 拡大率: 6405% • PowerPoint で画像を大きく拡大 (縮小) すると 望まない平滑化作用により,画像がボケる • あらかじめ ImageJ で必要な画像データを作成
目次 • 画像表示 • 画像解析 • 画像処理 • 機能拡張
機能拡張モジュール • Plugin と Macro は,ImageJ の機能拡張モジュール • Plugin は Java 言語で記載されたプログラム • ImageJ が内蔵する Java Compiler を用いて .class 形式に Compile • Macro は Java 言語に似た ImageJ のマクロ言語で記載 • テキストファイルで保存 • Plugin と Macro の特徴 • Plugin: 動作が高速・制約少 • Macro: 記載が簡単 • 世界中の研究者が各自の用途に合わせて 独自のプラグインを開発・公開 • https://imagej.nih.gov/ij/plugins/
モジュールのインストール • ImageJ1,FIJI (Windows) および ImageJ2 (Windows ) • Plugins と Macros は ImageJ/plugins に保存 • ファイル名に “_” が必須 • FIJI (Mac) および ImageJ2 (Mac) • アプリケーションを右クリックし, パッケージの内容を表示 Fiji.app(ImageJ.app)/plugins に保存
ImageJ で Hello, World! • Plugin -> New -> Plugin Plugin 名 • File -> Compile and Run • コードの保存名は “_” を含む • 保存名と Plugin 名は一致 • Plugin -> Macros -> Edit • コードの編集が可能
ImageJ (FIJI) で Python! • Jython: Java 上で実装された Python • • • • 文法は CPython と一緒 Python の標準ライブラリが使用可能 Java のプログラム・クラス・ライブラリを使用可能 CPython のライブラリが使用不可能 • ImageJ で Python を使うには, ImageJ/plugins/jars/Jython.jar が必要 • .py 初回実行時にダウンロードされる
Plug-in の紹介 - DICOM Wright • ImageJ の標準機能では DICOM 形式で画像を保存できない • Plug-in (The Tudor DICOM Tools) の導入で可能となる • • • • • http://santec.tudor.lu/project/dicom ソースコードが公開されているため編集が可能 DICOM 形式で保存が可能 DICOM ファイルの匿名化 Multi Flame の出力にも対応
Plug-in の紹介 - PET/CT Viewer • PET/CT Viewer プラグイン • ベスイスラエル病院 (Nuclear Medicine at Beth Israel Deaconess Medical Center, Boston MA.) によって作成 • 依存パッケージが多いので,FIJI を推奨 • Updater から依存ファイルを含めてインストール
Plug-in の紹介 - PET/CT Viewer • FIJI 版 PET/CT Viewer のメリット • OsiriX や薬剤メーカ製の無償で使える Fusion Viewer もあるが,動作環境に依存しない • SUV の再計算や Tag 情報より SUL の算出も可能 PET Axial Coronal CT Fusion MIP
最後に • ImageJ のインストールから 標準機能で実施が可能な 画像処理および画像解析について 説明をしました. • ImageJ は様々な画像処理や画像解析が可能な ソフトウェアですが,使用頻度の高い機能が 分かりやすい位置に配置されていないことが, 直感的に使いにくい原因だと思います. • 使いたい機能が何処にあるのかを知ることで ImageJ が使いやすいツールとなると思います.