5、
ROI ManagerのMeasureをクリックする。Resultsが表示されるので、これをFileからエクセルファイルとして保存する。
ROI ManagerのMeasureをクリックする。Resultsが表示されるので、これをFileからエクセルファイルとして保存する。
6、
測定した輝度の分布を確かめるためにHistogramを出力し、保存する。グラムが表示されるので保存する。メニューバーのAnalyze→Histogramをクリックすると下図のようなヒストグラムが表示されるので保存する。
測定した輝度の分布を確かめるためにHistogramを出力し、保存する。グラムが表示されるので保存する。メニューバーのAnalyze→Histogramをクリックすると下図のようなヒストグラムが表示されるので保存する。
【マクロ言語で記載する】
上記のImageJで画像に施した操作をマクロ言語で書くと以下のようになります。※上記の①~⑥までの操作で輝度統計量は測定できますが、下記のように背景領域を5つ選択し、その輝度の平均値を差し引く操作を追加したスクリプトを作成しました。
◆スクリプト
※1 中心のxy座標が (102, 183) x軸に平行な長さが74、y軸に平行な長さが42
※2 背景輝度を含んだ細胞輝度を変数originalMeanに代入しました。
※3 for文;プログラムにおいて繰り返しを命令するときに用いられる構文のことです。
for(最初に始める数字; 繰り返しの回数; 処理終了後に実行する命令)
{
繰り返しを行う処理に対応する命令文を記載する。
};
*for構文では変数と初期値を必要とし、多くの場合、変数iを0に設定してi=0と書かれることが多いです。例えば10回繰り返すときはfor(i=0; i<10; i++) のように書きます。
※4 背景輝度の合計
※5 背景輝度の平均値
※6 選択した領域の輝度から背景輝度を差分処理しました。
※7 saveAsに記載する保存先は目的のパスを書きます。
※2 背景輝度を含んだ細胞輝度を変数originalMeanに代入しました。
※3 for文;プログラムにおいて繰り返しを命令するときに用いられる構文のことです。
for(最初に始める数字; 繰り返しの回数; 処理終了後に実行する命令)
{
繰り返しを行う処理に対応する命令文を記載する。
};
*for構文では変数と初期値を必要とし、多くの場合、変数iを0に設定してi=0と書かれることが多いです。例えば10回繰り返すときはfor(i=0; i<10; i++) のように書きます。
※4 背景輝度の合計
※5 背景輝度の平均値
※6 選択した領域の輝度から背景輝度を差分処理しました。
※7 saveAsに記載する保存先は目的のパスを書きます。
◆画像処理の結果
上記のスクリプトを実行すると、手動操作で出力された結果と同じ結果が得られることが確認できます。原画像の輝度値から背景の輝度値を差し引いた細胞の真の輝度値を出力することができましたか?実際の画像解析ではこのように複雑な処理をする場合がよくありますので理解しておくと応用範囲も広がります。
【まとめ】
マクロ言語を用いて輝度統計量を出力する手法が理解できたでしょうか。
今回紹介したスクリプトにはマクロ言語でよく用いられる1行で書かれた命令文だけでなく、新しい変数 (originalMean、backMean、subInt) による数値演算と、for文による繰り返し処理も習いました。
これら上記の処理を併せることでマクロ言語の書き方をより深く理解できたと思います。次回以降も画像解析の実例に加えて、できるだけ多くマクロ言語の書き方を紹介していきたいと思います。次回第二回目はIf文を使った条件分岐で二値化処理を施す手法を紹介します。
今回紹介したスクリプトにはマクロ言語でよく用いられる1行で書かれた命令文だけでなく、新しい変数 (originalMean、backMean、subInt) による数値演算と、for文による繰り返し処理も習いました。
これら上記の処理を併せることでマクロ言語の書き方をより深く理解できたと思います。次回以降も画像解析の実例に加えて、できるだけ多くマクロ言語の書き方を紹介していきたいと思います。次回第二回目はIf文を使った条件分岐で二値化処理を施す手法を紹介します。