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

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

相対RGB色マスク作成ツール探求版のリリース

 先日相対RGB色マスク作成ツールのバージョンアップをリリースしましたが、今回は、このツールの派生バージョン、相対RGB色マスク作成ツール探求版をリリースします。

 そもそも相対RGB色マスク作成ツールではどのように相対色マスクを作っているかというと、例えば青マスクを作る場合、「相対的に青い」というのは、あるピクセルにおいて、Bチャンネルの値から、Bチャンネル以外、つまりRチャンネルとGチャンネルの平均値を差し引くことで、相対的な青さの値を得ており、それに基づいてマスクを作ります。また黄マスクを作る場合は、逆にRチャンネルとGチャンネルの平均値から、Bチャンネルの値を引くことで相対的な黄色値を得ます。なお、RGB値は、マイナスの値を取りませんので、マイナスになる場合はすべて 0 (黒)になります。

 ところで、Ver. 0.26から、緑/マゼンタマスクを作成する際に、Bチャンネルのみと比較するというオプションを導入しています。これは、緑マスクを作る場合、通常ならG値から、RとB値の平均値を差し引いてマスクを作るところですが、B値のみを差し引いてマスクを作るオプションです。これは何を意味するかというと、黄緑色の部分をより明るく評価するマスクを作るためです。
 原色の緑とは、Gの明度100%である一方、R, Gの明度は0%という色です。そして通常の緑マスクはこの原色の緑のとき、マスクの明度も最も明るくなり、原色の緑から離れるほど暗くなるマスクです。緑の値が、RとB値の平均値を下回ると(つまり緑系統の色でなくなると)、マスクの明度は0%になります。
 従って、通常の緑マスクは黄緑も原色から離れるので、やや暗くなってしまいます。しかし、写真を編集しているとき、例えば新緑の緑を強調するような編集を行いたい場合があります。このとき、新緑は黄緑色ですので、新緑部分もマスク上やや暗くなってしまい、このマスクを使うと調整効果が弱くなります。
 しかし、緑マスクを作るときにBチャンネルの値のみをGチャンネルの値から引き下げてマスクを作ると、黄緑色部分の明るさが明るくなります。これは通常、黄緑とは、GだけでなくRの値も比較的高い色であり、R値を差し引かないことで、黄緑部分の値が高くなるためです。但しこの場合は、青緑はB値が高くなりますので、通常の緑マスクより暗くなります。とはいえ、これには副作用もあり、純黄色も、原色の緑と同じく最も明るく評価されます。つまり、緑 - 黄緑 - 黄が明るくなるマスクとなります。
 しかし、さすがに真っ黄色まで、マスク上もっとも明るいと困る場合もあるでしょう。このような場合、どのように対処するかと考えて、次のような対策を考えました。相対色マスクを作るときの対比チャンネルの混合比を指定できるようにしたのです。これがすなわち本ツールです。

 以下に今回新設したパラメータを設定するダイアログを図示しておきます。

新設パラメータ

 今このダイアログは緑透過マスクを作ろうとしていますが、[imp2 Mixing Rate] という数値入力ボックスが新設されています。その上に imp2: R imp3:B とありますが、これは緑透過マスクを作るときの対照チャンネルが、R, Bチャンネルということを示しています。そして imp2の混合比とは、imp2がR ですので、Rチャンネルの混合比を指定することになります。Bチャンネルの混合比は 1 - Rチャンネルの混合比 となります。ここに0.5を指定すると、従来バージョンと変わらない結果となります。この比を0.5より大きな値を与えると、対照画像作成時のRの混合比を高めることになり、0.5より下げると低めることになります。

 例えば、緑マスクを作るときに、対比チャンネルの混合割合をR: 0.3、B: 0.7 としてみます(R比低、B比高)。すると、Bチャンネルの値を引くだけのときと比べると、ある程度Rを値を差し引くことになります。ということは原色の緑のときが最も明るく、黄緑も比較的明るいですが少し明るさが落ち、真っ黄色だともうちょっとさらに暗くなるマスクになります。また青緑に関しては、Bの引き下げ量がやや下がりますので、Bチャンネルの値を引くだけのときと比べると、やや明るくなります。これなら、新緑編集用のマスクとしては、Bチャンネルのみ差し引くよりも、より適切なマスクになると考えられます。なお。ここでRチャンネルの混合比を 0.0 にするとBチャンネルのみと比較しますので、Ver. 0.26から導入したオプションと同じになります。

 同様に考えていくと以下のようになると思います。

原色マスク   ※( )内はシャドウ領域の場合の色 / r は混合比 (デフォルトは r = 0.5)

赤マスク: (R-[G x r +B x (1-r)])
 G比高・B比低: 赤 > マゼンタ (暗赤 > 葡萄色) が明るいマスク
 G比低・B比高: 赤 > オレンジ > 黄 (暗赤 > 茶色 > 鶯色) が明るいマスク 

緑マスク: (G -[R x r + B x (1-r)])
 R比高・B比低: 緑 > 水色 (暗緑 > 青緑) が明るいマスク
 R比低・B比高: 緑 > 黄緑 > 黄色 (暗緑 > 鶯色) が明るいマスク

青マスク:  (B-[R x r +G x (1-r)])
 R比高・G比低: 青 > 水色 (藍色 > 青緑) が明るいマスク
 R比低・G比高: 青 > 紫 > マゼンタ (藍色 > 葡萄色)  が明るいマスク

補色マスク

シアンマスク:  ([G x r +B x (1-r)] - R)
 G比高・B比低: シアン > 緑 (青緑 > 濃緑) が明るいマスク
 G比低・B比高: シアン > 青 (青緑 > 藍) が明るいマスク 

マゼンタマスク: ([R x r +B x (1-r)] - G)
 R比高・B比低: マゼンタ > 赤 (赤紫 > 暗赤) が明るいマスク
 R比低・B比高: マゼンタ > 紫 > 青 (赤紫 > 藍) が明るいマスク

黄マスク:  ([R x r +G x (1-r)] - B)
 R比高・G比低: 黄 > オレンジ > 赤 (鶯色 > 茶色 > 暗赤) が明るいマスク
 R比低・G比高: 黄 > 黄緑 > 緑 (鶯色 > 濃緑)  が明るいマスク

 

 これはいわば相対RGB色マスクの色の方向に言わば「傾き」を付けるオプションと言えます。これにより色調コントロールの自由度がさらに増します。とは言え、このオプションは、原色-補色の関係性について正確な理解がないと使いこなせません。ダイアログ上は、いままでの相対RGBマスク作成ツールに1つだけパラメータが付け加わっただけですが、使いこなしの難しさを考えて、今までのツールのバージョンアップ版ではなく、「探求版」と称して、今までのツールの派生、別ツールとしてリリースします。なお、混合比を0.5に固定すると、従来のツールと同じ動きになります。

 とはいえ、ここのところのバージョンアップでマスク画像のプレビューを充実させてきたので、どのようなマスクが出来上がるかの確認は容易になりました。

 

 なお、このツールの限界としては、必ず原色、もしくは補色が最も明るくなる(最大値を取る)マスクしか作れない点です。例えば、黄緑が最も明るくなるマスク、というのは作れません。黄緑が明るく評価されるマスクを本ツールで作るには、緑マスクを、R比低、B比高でつくるか、黄色マスクを、R比高、B比低で作ることになりますが、その場合でも、純緑、もしくは純黄が最も明るく(高く)評価されるマスクになります。

 但し、黄緑が最も明るく評価されるマスクを作りたければ、通常の画像処理ソフトが備える、類似色マスクあるいは、特定色域の範囲指定などの機能を使えば良いと思います。

 また、もう一点本ツールの使い方の難しい点として、原色マスクと、補色マスクでは、色の混合比を設定する意味が反転する点です。

 補色マスクにおいては、対照チャンネル合成画像 ー 対象チャンネル画像 で作成し、かつ、ここで指定する混合比は対照チャンネル合成画像を作成するときに使われますので、混合比を高めたチャンネルの効果が強まります。

 しかし、原色マスクでは、対象チャンネル画像 - 対照チャンネル合成画像 で作成しますので、混合比を高めたチャンネルの値はより大きく差し引かれることになります。つまりマスクに対する効果が逆に弱まります。先ほど緑マスクでR 0.3 B 0.7 のマスクを作ってみると、と書きましたが、緑マスクは原色マスクであり、Rの比率を低めているので、Rがより高く(明るく)評価されるマスクをつくる、ということになります。

 このあたり、直感と齟齬がありますので使いにくくなっていますが、より使いやすいユーザインターフェースについては今後の課題としたいと思います。また、今回の説明だけでは分かりにくいと思いますので、事例も今後上げていきたいと思います。

 

 本プログラムのダウンロードはこちらから。 

 

 なお、上記以外については、従来のマニュアルページをご参照ください。

yasuo-ssi.hatenablog.com