ImageJで葉面積を測ってみた

ImageJを使って単純な方法で画像から葉面積を測ってみました。大まかな方法としては、画像から緑の部分を選択して選択された部分の面積(ピクセル数)を数える感じです。

RGBからLab色空間に変換する

RGBのGチャンネルが高いピクセルが緑だと思いそうですが案外そうでもありません。Lab色空間にすることでa*の座標軸の小さい方が緑になっているので、まずはRGBからLabに変換します。

ImageメニューのTypeからLab Stackを選択します。変換には多少時間がかかるようです。

f:id:menseki:20210211225450p:plain
RGBからLabに変換

変換が終わると以下のように画像がグレースケールに代わり、さらに画像の下にスクロールバーが現れます。

f:id:menseki:20210211225459p:plain
Labに変換し終わった図

スクロールバーを真ん中に移すことでa*軸の値のグレースケールを表示できます。

以下のように、画像の左上に 2/3 (a*) という表記がされていればOKです。

f:id:menseki:20210211225727p:plain
a*座標のデータを表示

Thresholdを設定する

続いてImageメニューのThresholdを選択肢、バックグラウンドと葉っぱを区別するための閾値を設定します。

f:id:menseki:20210211225832p:plain
Thresholdを設定

Thresholdを選択すると以下の図のように小さなウィンドウが表示されパラメータを設定できます。パラメータを適宜設定して、葉っぱの部分が赤く選択されるようにします。もし、Dark backgroundにチェックがついていたら外します。

f:id:menseki:20210211225912p:plain
葉っぱの部分を選択した図

面積を計算する

次にいよいよ面積を計算するための設定に入ります。AnalyzeメニューのSet Measurements...を選択します。

f:id:menseki:20210211230346p:plain
Set Measurements...の選択

すると以下のようなウィンドウが現れるのでAreaを選択し、Limit to thresholdにチェックをつけます。これをすることで現在設定しているThresholdで選択されている部分の面積を測ってくれます。

f:id:menseki:20210211230046p:plain
Set Measurements...の設定項目

Set Measurements...のウィンドウでOKを押したら、AnalayzeメニューのMeasureを選択します。

f:id:menseki:20210211230137p:plain
Measureを選択

以下のようなウィンドウが現れて面積がピクセル数で表示されました。

f:id:menseki:20210211230207p:plain
葉面積計測結果

ちなみに先ほど説明したLimit to thresholdのチェックを外してMeasureを再度選択すると画像全体の面積がでます。これらの値の比をとることで被度的なものが得られるかもしれません。

f:id:menseki:20210211230236p:plain
画像全体の面積計測結果

今回の方法はかなり単純なので葉が緑でない部分があったり、逆に地面に葉とは関係ない緑色の部分があったりするとその部分が計算に含まれなかったり含まれたりするので厳密性をあげるならもう少し工夫が必要かもしれません。