2016年11月29日 更新

シリーズ4.ImageJマクロ言語を用いた画像解析~②二値化処理-3~

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。

158 view お気に入り 1

概要

ImageJのThresholdの中にもPercentileという項目があり、マクロで書かなくても簡単にPercentile法で二値化処理を施すことは可能です。しかし、ImageJでは輝度値ヒストグラムの上位50%を閾値とする(=50パーセンタイル)という設定しか施すことができません。画像によっては上位50%が適切な閾値であるとは限らないので、この設定を任意の数値に変えることが可能になると、さまざまな画像で領域分割が可能になります。
今回は上位X%を閾値とする二値化処理を施すスクリプトをマクロで書くことを学びます。
サンプル画像(下記リンク先を参照)Rat_Hippocampal_Neuron2.zip を例に見てみましょう。
今回は神経細胞の突起に見られる粒子状の構造の画像を使います。
ImageJ(サンプル画像)

ImageJ(サンプル画像)

最終的にこの粒子状の構造をカウントすることを目的に画像処理を施すことを考えます。まず、Percentile法で二値化処理を施してみます。
Image→Adjust→ThresholdをクリックしてPercentileを選択すると、ヒストグラムの画像の左下に50.15%と表示されています。これが閾値です。しかし50%を閾値にすると下図のように細胞の粒子状の構造のみならず繊維の部分も含まれてしまいうまくカウントできないように思われます。
そこで試しに上段のバーをマウスで動かして閾値を変えてみます。5%付近にするとカウントしたい粒子状の構造が選択されることがわかります。

◆50%パーセンタイルの場合

 (2798)

◆5%パーセンタイルの場合

 (2800)

これより、上記の画像に「上位5%を閾値とする二値化処理を施し粒子の数をカウント」する画像処理を施すことにします。この処理をマクロで記述するために必要な知識をまず説明します。

【配列】

array[]
arrayという名前の配列の定義。イメージとしてはarrayという名前の箱に[]内に書いた数だけ文字または数字を格納する場所があると考えるとわかりやすいと思います。 ※配列の名前は任意に変更可。


【getHistogramの使い方】

getHistogram()
8bit画像の場合、0~255までの輝度値に対応するピクセル数が順番に格納されます。

※getHistogram(引数1, 引数2, 256) と記述した場合
引数1に輝度値(0-255)、引数2に各輝度値に対応する度数(ピクセル数)をかえす。

配列

配列

30 件

関連する記事 こんな記事も人気です♪

ImageJ Plugin で大量の画像に対する自動処理 #4

ImageJ Plugin で大量の画像に対する自動処理 #4

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回はスタック画像に対する ImageJ Plugin の作成方法を紹介します。
湖城 恵 | 251 view
ImageJ plugin で面積計測を自動化してみた #3

ImageJ plugin で面積計測を自動化してみた #3

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回は解析を自動化する plugin を紹介します。
湖城 恵 | 227 view
ImageJ plugin で Hello world! #2

ImageJ plugin で Hello world! #2

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回から早速 ImageJ plugin を作成していきます。
湖城 恵 | 133 view
ImageJ Plugin を作るための Java #1

ImageJ Plugin を作るための Java #1

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。 今回は最低限のJavaについて。
湖城 恵 | 157 view
OpenCVでライフサイエンスを加速する!

OpenCVでライフサイエンスを加速する!

OpenCVはそもそもはコンピュータービジョン向けのライブラリです。それゆえ、顔認識や文字認識、カメラキャリブレーションなど、いわゆるロボットや自動運転車などの工学系の応用を主に想定して開発されていますが、ライフサイエンスの分野でもOpenCVは非常に役に立つツールです。
望月 優輝 | 439 view

この記事のキーワード

この記事のキュレーター

柏崎広美 柏崎広美