ImageJを使って画像解析するにあたり、解析結果を可視化するグラフ機能は重宝します。このグラフ機能一つとっても、ImageJは様々な解析をサポートする機能が充実しています。
今回はグラフの解析に便利な手法と解析方法を紹介します。
ダイレクトにグラフに数値と座標を与える方法
ImageJで画像をロードして、画像上の直線もしくは曲線上のプロファイルカーブを表示する作業はよく使うのではないでしょうか。このような解析結果は、その数値情報などが含まれているので、何も悩むことなく、グラフとして使えます。
サンプル画像:ツリーリング(四角形ROIを設置)
ROIのプロットプロファイル結果
しかし、手元に「グラフの絵だけある状態」だとどうでしょうか。なんとかこのグラフから形跡結果を導き出したいと思ったことがある方もいらっしゃるかもしれません。
このようなニーズに応えるべく、今回は、あらかじめ教科書や雑誌などに掲載されているグラフをスキャナなどで取り込んで画像化したものに数値と座標を与える作業から始めてみます。
このようなニーズに応えるべく、今回は、あらかじめ教科書や雑誌などに掲載されているグラフをスキャナなどで取り込んで画像化したものに数値と座標を与える作業から始めてみます。
まず、サンプルとして、ImageJにて“Line Graph”(File>Open sample)をロードします。
この画像は、グラフデータではありますが、グラフが描画されている“画像”ですので、グラフの正確な数値情報は保持していません。よって、そのような情報をグラフに与えるために、ImageJには“Analyze Line Graph”という機能が備わっています。
この画像の場合、複数のグラフが描画されていますので、まず、画像の中から特定のグラフの抽出作業を行います。
以下に手順を示します。
① 画像を8ビットグレイスケールに変換〈Image/Type/8 bit〉
② グラフを二値化〈Image/Adjust/Threshold...〉
③ ImageJ アイコンメニューのポリゴンツールや同じ明るさまたは近い明るさの部分の輪郭に囲まれた選択範囲を作成するWand Tool(魔法の杖のアイコン)で特定のグラフを選択し,〈Edit/Clear Outside〉で余計な画像を消す。
④ 細かい不要な部分は、Free Hand Selectionアイコンなどを用いて、〈BackSpace〉ボタンを押しながら消す。
グラフが重なっている部分や軸と連結して自動抽出されてしまった余分な画像には、どうしてもマニュアル作業が必要ですが、Wand Tool アイコンをダブルクリックして、領域選択の連結を、4近傍や8近傍の連結にしたり、耐用量をコントロールすることである程度は抽出できます。
次に、このままでは二値化された曲線の絵でしかないので、〈Analyze>Tools>Analyze Line Graph〉を選択し、座標と数値情報を付加します。
グラフのカーブフィッティング
グラフを表示できたら、グラフのフィッティングによってグラフの特性を解析することができます。ImageJ の〈Analyze/Tools/Curve Fitting〉を選択すると、カーブフィッティングツールが現れるので、グラフ化したデータからリストを出力し、カーブフィッティングツールからOpenして(1行目のX, Yは削除する)、任意のフィッティングメソッドを選択して、〈Fit〉ボタンを押すと、選択した数式に応じてフィッティングカーブが表示
されます。
(カーブフィッティングツール)
(事前に、グラフのデータウィンドウの下にある<リスト>からリストデータを保存しておく)
(保存しておいたリストデータ"Open"し、2nd Degree Polynomialでフィッティングした結果)
同時にログが表示されますが、そこに具体的な数式のパラメータが表示されます。使用できる数式は次のとおりです。
また、フィッティング後も、これらの近似された数値が改めてグラフからリスティングデータとして保存できます。解析をさらに進めて得られたフィッティングデータは、エクセルなどにコピー& ペーストして、グラフの再表示や統計値を計算することができます。
今回はImageJ を用いたグラフ表示とカーブフィッティング方法について述べました。
次回も画像解析に役に立つ、ImageJならではのテクニックを紹介します。
参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(26・6) 2011, p76-77」
0 件のコメント:
コメントを投稿