ImageJ においてその画像の明るさ、あるいは各 RGB チャンネルの値の最大値、最小値を取得するにはどうしたら良いでしょうか?
以下の、ImageJ のImageProcessor のレファレンスを見ると...
imagej.net getMax(), getMin() というメソッドがあるのが分かります。これで取得できるのかと思いきや、これではありません。
このメソッドの説明に、"Returns the maximum (minimum) displayed pixel value." とありますが、これはディスプレイ範囲の最高値、最低値を取得するメソッドであり、実際に入っている値の最高値、最低値を取得するメソッドではありません。
実際に画像が使っている値を取得するには、まず統計を取得し、その統計値の中の最高値や最低値を取得する、という手続きになります。例えば、今値を見たい、imagePlus の名前が imp だとすると...
stat = imp.getProcessor().getStatistics()
で、stat という名前で統計データを取得します。
この stat の中の、stat.max あるいは、stat.min という値が実際の最高値、最低値になります。
これをコンソールに書きだしたい場合は、
print ("maximum value: ", stat.max)
などと書くことになります。
なお、16bit 画像の gamma 値の計算は、ディスプレイ範囲の最高値、最低値に基づいて計算されます。