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

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

ImageJ対応 相対RGB色マスク画像作成ツール Ver. 0.26 バージョンアップ

 夏にもバージョンアップしましたが、今回相対RGB色マスク画像作成ツールを、Ver. 0.26にバージョンアップします。6月のバージョンアップの主目的は、マゼンタ被り補正への対応強化、夏のバージョンアップはユーザインターフェース、特にプレビューの改善でしたが、今回のバージョンアップの主目的は、緑の析出の改善です。

 緑の析出の改善に向けて、今回2つの機能を追加しました。1つはチャンネル間レベル調整オプション、もう一つは、Gチャンネルを対象としたマスク作成時に、Bチャンネル情報のみを比較対象にするオプションです。

■チャンネル間レベル調整オプション

チャンネル間レベル調整オプション

 読み込み画像指定後出てくるパラメータ指定ダイアログで、上記のようなオプションが付きました。例えば下記のやや青紫に色被りしている画像の...

サンプル 元画像

イエロー透過マスクを作ろうとしたときに、このオプションにチェックをつけると...

イエローマスク レベル調整 On

 

上のようになります。しかし、オプションをオフにすると...

イエローマスク レベル調整 Off

イエローの検出量が大幅に減ってしまいます。

 この理由ですが、読み込み元の画像がマゼンタ+青に寄っているため、黄色部分を検出しようとすると、当然全体的に青に寄っているのであまり検出できません。それを、R, G, Bのレベルを合わせることで、相対的に黄色い部分をより広く検出できるようになりますす。この影響は植物の緑を改善するためのグリーンマスク作成の際などでも顕著なので、色被り、色の偏りがある画像で活用していただければと思います。

 しかし、このオプションは常にオンにしておいたほうが良いとは限りません。例えば、画像がマゼンタがかっているのを修正しようとして、マゼンタ透過マスクを作るときにこのオプションをオンにすると、かえって検出量が減ってしまいます。

 つまり、その画像のドミナント(支配的)の色を検出したいときはオプションをオンにするとかえって検出量が減り、逆にドミナントでない色を検出したいときはオンにすると検出量が増える、という関係にあります。つまり、色被りがある画像で、ドミナントでない色を検出するマスクを作りたいときに有効なオプションです。

 一方、一般的な風景写真等で画像のカラーバランスが取れている場合は、そもそもR,G,B間のレベルに大きな差はないはずなので、通常オンにする必要はありません。またオンにしても、あまり結果に差はないはずです。ただし、特定の人工物が画面の大半を占めているような写真では、カラーバランスに問題のない画像であっても、この限りではありません。

 

■Gチャンネル対象マスク作成時 Bチャンネルとのみ比較オプション

 このオプションはGチャンネルを対象としたマスク (マゼンタ or グリーン) を作ると指定した時のみ、ダイアログに現れます(下図)。

Bチャンネルのみ比較 オプション

 グリーンマスクを作ろうとするときに、オプションをオン/オフするとどう異なるか見てみましょう。サンプル画像は上と同じです。なお、いずれもチャンネル間レベル調整をオンにしています。まずはオフから...

グリーンチャンネル オプション Off

 一応普通に植物の緑が検出されています。次はオプションオンです。

グリーンチャンネル オプション On

 検出のされ方が変わります。稲穂部分の検出量が増える一方で、手前のネギは黒っぽくなっています。これはどういうことかというと、一般的に植物の緑は、GとRの相関が高い一方 Bとの相関が低いという傾向にあります。つまり、Gが最も高く、それに次いでR、そしてちょっと下がってBという値を取ります。特に新緑の若葉 (明るい黄緑が強い) の場合、GとRの差がほとんどなく、値も高い一方、Bの値は非常に低くなります。

 一方、相対RGB色マスク作成ツールの基本原理は相対的に、R,G,Bが高い部分を検出します。つまり、相対的にGが高い領域を検出する場合、G- (R+B)/2 で求められる、Gと他チャンネルとの相対値を求めることで検出します。しかし、若葉のように黄緑が強い場合、B値は低いものの、R値は高いため、今一つ検出量が増えません。そのような若葉などの検出量を増やすため、Rを考慮せず、Bのみとの差で検出しようというのがこのオプションです。

 上のサンプルを見るとオプションをオンにした場合、元より検出量が増えている部分と減っている部分があります。水田の稲穂の部分は検出量がかなり増えていますが、ネギはかえって検出量が減っています。水田の稲穂は黄緑~黄色味が強く、R値が非常に高い一方、B値は非常に低いため、このオプションで大幅に検出量が上がっていますが、ネギはもともとB値が高く (おそらくR値よりも高い) そのためかえって検出量が減っているのです。その他の部分はあまり検出量が変わりません。

 ですので、これで何を狙っているかというと、植物の緑を G-B値の接近から改善しようとするときに、まず、このオプションをオフにしたマスクを使って、植物の緑を改善した後、若葉などが冴えない場合、さらにオプションをオンにしたマスクをその上からさらにかけて、若葉などの輝きを改善する、というような使い方を想定しています。

 なお、このオプションは、当然マゼンタマスクを作るときも有効ですが、その場合は、このオプションを使うと、通常に比べて、R値が低くてマゼンタを検出しにくい部分(=G値、R値とも低いがB値は高い部分)がより検出しやすくなるという効果があります(通常相対的マゼンタ部分を検出するには、(R+B)/2 - G という式を使っているため)。これは、通常のマゼンタ(赤紫)に加えて青紫~青を加えた部分を検出するようになるということです。

 コニカミノルタのスキャナドライバは、黄変があると、青紫寄りに補正を掛ける傾向がありますので (まさにこのサンプルのような画像です)、そのような青紫被りを取るにはこのオプションは有効です。

 

■その他

 2枚のマスクを併合してマスクを作る場合、2番目のマスクとして Cyan/Red マスクを指定すると、その際のデフォルトが、Redの除外マスクになるように設定しました。これは2枚目マスクを作る多くのケースは、マゼンタマスクの除外部分を設定する目的だろうとの想定からです。

-------------

 本ツールのダウンロードはこちらからどうぞ。なお、引き続きGIMP用の、ファイルをマスクとして読み込むプラグインを同梱しています。GIMPプラグインの説明についてはこちらをご覧ください。

 また、本ツールに関する基本説明は以下をご参照ください。

yasuo-ssi.hatenablog.com

 なお、マスク自体を作成するコード自体は結構簡単ですが、プレビュー画面に反映させる部分が結構困難で悪戦苦闘しました。マスクを作るコード自体は、プレビューも、最終マスクを作るのも一緒なうえ、ユーザがダイアログを動かすたびに動的に画像を変えなければいけませんので、このあたりが結構難しいです。結局全体のコード量の2/3~3/4がユーザインターフェース関連となり、かなり長いプログラムになりました。

-----------------

 

 なお、本記事で紹介した写真補正技法やソフトウェア (Plug-in) は個人的用途および非営利目的であれば自由に使っていただいて構いませんが、本技法を使って何らかの成果 (編集した写真等) を公表する場合は、本記事で紹介した技法を使った旨クレジットをつけて公表していただくことをお願いします。

 また、本ソフトウェアは現状のまま提供されるものし、作者はこれを使ったことによるいかなる損害補償等にも応じられないことを了解の上使っていただくものとします。
 但し、もしソフトウェアのバグがありましたら、ご連絡いただければなるべく改善するよう努めたいと思います。

 営利・営業目的で使用される方は別途ご相談下さい。

 また、私の作成したPlug-inも自由に改変して使用していただいて構いませんが、その成果を公表する場合はご一報下さい (公表しない場合は特に連絡は必要ありません)。またその改良した結果を私の方で自由に利用させていただくこともご了承下さい。