2017年1月26日 更新

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

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

373 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 件

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

シリーズ5.ImageJマクロ言語を用いた画像解析~マクロ言語のまとめ2~

シリーズ5.ImageJマクロ言語を用いた画像解析~マクロ言語のまとめ2~

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。 今回の記事ではImageJのユーザー定義関数について学んでいきます。
柏崎広美 | 248 view
シリーズ5.ImageJマクロ言語を用いた画像解析~マクロ言語のまとめ~

シリーズ5.ImageJマクロ言語を用いた画像解析~マクロ言語のまとめ~

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。
柏崎広美 | 289 view
シリーズ4.ImageJマクロ言語を用いた画像解析~②二値化処理-2~

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

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。
柏崎広美 | 528 view
シリーズ6.マクロ言語を使った画像処理の応用編~ノイズ軽減① 空間フィルタ処理~

シリーズ6.マクロ言語を使った画像処理の応用編~ノイズ軽減① 空間フィルタ処理~

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。 今回の記事から応用編としてさらに詳しく画像処理を学んでいきます。最初のテーマはノイズ軽減です。
柏崎広美 | 267 view
ImageJ Plugin で数値計算をしてみる #5

ImageJ Plugin で数値計算をしてみる #5

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回は、面積の平均値や中央値、分散を出力するためのコードをご紹介します。
湖城 恵 | 280 view

この記事のキーワード

この記事のキュレーター

柏崎広美 柏崎広美