省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

ImageJ 用 LUT ガンマ変更ツール

 ImageJ 用の、画像のガンマをLUT (Look up table) を使って変更するツールを作成しました。以前、画像自体に TRC をかけたり外したりするツールを公開しましたが、そちらのツールは画像データに TRC (トーン再生カーブ) を掛けたり外したりすることで、明度値を変更するツールでした。

 今回公開するツールは、LUT を使って画像の見え方を変更するツールです。従って、画像の見せ方を定義する LUT のみ入れ替えるので、画像の明度値自体は変化しません。画像データ自体はいじらないという考え方です。

 ただ、基本的にはリニア画像 (Gamma = 1.0) の見せ方を変更するために使うことを考えています。というのは ImageJ はカラーマネジメントに対応していませんので (これは Mac でも WindowsLinux でも変わりません)、リニア画像は本来の明るさより暗く見えてしまいます*1。それを補償するために、 LUT で見せ方だけを調整するというという考え方です。

 また、既にかかっている LUT に対し、ガンマ補正を掛けることもできます。

 もし開いているファイルがない状態で、本ツールを ImageJ 上で起動すると、以下のようなメッセージが出ます。

ファイルオープン前のメッセージ

 新たにファイルを開く場合は、bio-format プラグインでインポートしますので、その場合、もし開くファイルに LUT が設定されていてもリセットされてしまうので、その警告メッセージです。従って既存の LUT のガンマを変えたい場合はこのプラグインを起動する前に、予めファイルを開いておいてください。

 そして、ファイルを指定して開くと以下のような Gamma 値調整ダイアログが出ます。

ガンマ調整値ダイアログ

 この時、新たにファイルを開いた場合は、Select applying process で選択の余地はありません。

 既存の LUT に対するガンマを掛けたい場合は、LUT のかかったファイルを File → Open で事前に読み込んでおいて本ツールを起動します。すると下記のように、Gamma のドロップボックスにて、adjust existing Lut が選択可能になりますので、それを選びます。

adjust existing lut を選択

 なお、上のサンプルファイルには、リニア画像を読み込ませています。また上のケースではカラー画像を読ませていますが、その下のように、モノクロ画像も大丈夫です。ここで、スライダーを動かすとその結果がプレビュー画面に出ます。

Lut のガンマ調整中

ちょうどよいところでスライダーを止めて OK すると、下記のように、結果画像の画面が表示されるとともに、元の画像に、

_Gamma_ガンマ値_encoded.tif

という名前を付けたファイルが作成されます。つまり元の画像を上書きせずに、ガンマのかかった LUT を加えた画像ファイルが別途できます。なお、デフォルト値は 1.0 ですが、このままだと何の画像も変化しませんので、別の値を指定する必要があります。通常は sRGB TRC の近似値である、2.2 を指定するのが良いと思います。なお、モノクロでもカラー画像でもガンマ値を変更できます。

完了画面

 また、"encode" を選びますと (なお、新たにファイルを開いた場合は encode しか選べません)、元々かかっていた LUT を完全に置き換えますので、この点にもご注意ください。既存の Lut のガンマを変えたい場合は、上のように、adjust existing Lut を選びます。できたファイルの LUT を表示させると下記のようになります。

LUT にガンマが掛かっているのを表示
[image] → [color] → [show lut]

 ちゃんと LUT にガンマが掛かっているのが確認できます。

 

 本ツールのダウンロードはこちらから。

 

 ただ、これをつくってみて ImageJ がカラーマネジメントに対応しない理由も分かりました。おそらく LUT で対応すればよいという考え方かと思います。ただそれならビルトインの LUT にガンマ2.2 の LUT が含まれているべきだと思うのですが、それが見当たりません。

 また、メニューの Image → LookUp tables 以下から Lut がかけられますが、RGB ファイルの場合、R チャンネル (RGB の最初のチャンネルであるため) のみに LUT が掛かることになります。したがってそれは、常に R チャンネルの値に基づいて Lut がかかるということを意味します。しかし、これはそもそも RGB カラーファイルに LUT を掛けることを想定していないのでは、と考えてしまいます。そのため、RGB カラーファイルの LUT 周りの仕様についてこれで良いのか、ちょっと考え中です。現状は、R チャンネルの LUT にのみガンマ補正が掛かるような仕様になっています。

 

*1:リニア画像は、暗く見えるべきだ、というのは本来間違いです。その理由については以下の記事をご覧ください。

yasuo-ssi.hatenablog.com