« どうしてJaveでCookieが取得できないんだろう?(5) | トップページ | 動画共有サイトのコメントをヒートマップで表示するソフト »

2010年9月29日 (水)

Javaでサーモグラフィーの色のグラデーションを再現(6)

前回 からの続きです

 Javaで「サーモグラフィーの色のグラデーションを再現」のまとめとして作成したソースコードを載せます。

「HeatmapUtility.java」をダウンロード

このクラスは3つのコンストラクタを持っています。

public HeatmapUtility(int max)
public HeatmapUtility(int max, boolean reverse)
public HeatmapUtility(int min, int max, boolean reverse)

 maxは最大値を、minは最小値、reverseはスケールの反転を指定します。
最大値のみを指定する場合には、最小値は0、スケール反転無しになります

HeatmapUtility util = new HeatmapUtility(128);

 最大値128、最小値-128、反転無しとしてインスタンスを作成する場合以下のようになります。

HeatmapUtility util = new HeatmapUtility(-128, 128, false);

 インスタンス化した後、色を取得するにはint getColor()メソッドを使います。

public int getColor(int value)

 コンストラクタで指定した最大値と最小値の範囲で値をvalueに指定すると、サーモグラフィーの色域で対応したint型の色を取得できます。引数に最大値、最小値を超える値を指定した場合は、それぞれ最大値、最小値として扱われます。

 取得したint型の色は、他クラスで色の指定に使ってください。

int colorValue = util.getColor(64);

 java.awt.Colorのコンストラクタへ渡しColorのインスタンスを作成できます。

Color color = new Color(colorValue);

 ソースの中に記述がありますが、今回は単純なマッピングを行っており他にcosを用いたものと、三次関数によって近似したものとが注釈してあります。参考程度に見てみてください。

 温度分布を表すグラデーションには、様々な色の表現方法があるようです。今回紹介した色の移り変わりは一般的なもので、RGB値の移り変わりから見ても妥当だと思われます。しかしながら、紫と橙を用いたヒートマップの表現系や、水色を省いた色域を用いたものなど、企業・製品・研究領域によって変わってくると思われます。

 今後はそういったサーモグラフィーの表現方法の違いを調べ、それらを実装する方法についてまとめようと考えています。

« どうしてJaveでCookieが取得できないんだろう?(5) | トップページ | 動画共有サイトのコメントをヒートマップで表示するソフト »

Java」カテゴリの記事

Javaでサーモグラフィーの色のグラデーションを再現(1-6)」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Javaでサーモグラフィーの色のグラデーションを再現(6):

« どうしてJaveでCookieが取得できないんだろう?(5) | トップページ | 動画共有サイトのコメントをヒートマップで表示するソフト »