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

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

相対黄色透過マスクを作成して不均等黄変画像を補正する

 ここで紹介する不均等黄変の補正法は、相対RGB色マスク作成ツールを使って、相対的黄色部分透過マスクを作り、それを基に GIMP、Phothoshop 等で黄変を補正する方法です。

 なお、不均等黄変による変褪色の程度がひどい場合は、Bチャンネル再建法をご利用ください。特に、程度がひどい不均等黄変に伴う周辺部分の色抜けは、単なる変色というよりは、Bチャンネルの情報自体の消失に起因するため他チャンネルからの情報流用が必要です。このため、当手法は適しません。

 まず、オリジナル画像から...

オリジナル

 空の部分がうっすらと黄変しています。これを相対RGB色マスク作成ツールを使ってマスク画像を作成し、そのマスク画像を使って黄変を補正していきます。

 ImageJ 上で、これを相対RGB色マスク作成ツールを起動し、オリジナルファイルを読み込み、ターゲットとするチャンネルを Yellow/Blue にします。

チャンネル選択

 その後のダイアログでパラメータを調整します。

相対RGB色マスク作成ツールでパラメータ調整

 色の閾値は 10 のまま、色の透過度は 1.8 程度に設定しました。

相対RGB色マスク作成ツールで最終イメージプレビュー

 空の部分だけ補正したいので、マスクの有効範囲を 128~255に設定し、最終イメージプレビューボタンを押して、最終的にできるマスクのイメージを確認し、OKボタンを押してマスク画像を作成します。ほぼ空の黄変した部分をそのまま白抜きにした画像が作成されました。

 因みに GIMP の色域指定を使うと(おそらく ΔE を使っていると思われます)、以下のようなマスクになりました。

GIMP の色域指定を使った場合

上をもう少し許容範囲を広げた場合

 微妙に範囲が違うようです。

yasuo-ssi.hatenablog.com

 GIMP を起動してオリジナルファイルを読み込み、さらにレイヤーを複製します。

GIMPでオリジナル画像を読み込みレイヤーを複製

 複製したレイヤーに対し、相対RGB色マスクで作成した画像をマスクとして読み込みます。

複製したレイヤーに、相対RGB色マスク作成ツールで
作成した画像をマスクとして読み込む

 以下のようにマスクが読み込めました。

マスクを読み込んだところ

 次にマスク画像を編集します。マスクを編集 & 表示モードにします。

マスク編集中

 空以外の部分は黄色味を取らないので、空以外の部分を範囲指定して、黒塗りにします。

 次にマスク表示を消し、描画(塗潰し)キャンバスに編集モードを移します。

トーンカーブで B チャンネルを編集し空の黄変を消していく

 トーンカーブで B チャンネルのカーブを明るい端を中心に引き上げ、空の黄色味を消します。

 これで黄変自体はきれいに消えましたが、この画像の場合全体がマゼンタがかっているので、マゼンタ被りの補正作業が必要です。マゼンタ被りも補正し、最終的に編集した画像は以下をご覧ください。

yasuo-ssi.hatenablog.com

 なお、この作業は GIMP に限らず Krita や Photoshop やKrita 等他のレイヤー編集をサポートした画像編集ソフトでも可能なはずです。

 

 なお、どのように相対的に黄色い部分が析出できるのか、人工的に色塗りをした画像を対象に例を示してみます。

 緑色の中で相対的に黄色い部分を析出するケースです。緑色の中央に黄緑の部分があります。図の下に、8bit相当のRGB数値を示しておきます。

オリジナル
緑部分 59.0, 171.0, 105.0
黄緑部分 150.0, 222.0, 41.0

 これを相対RGB色マスク作成ツールで読み込んで黄色透過マスクを作成する場合、色の閾値が 10 でも十分に相対的に黄色い部分が析出できます。

黄色マスク 色の閾値 = 10

 しかし、黄色の補色である青色の中で相対的に黄色い部分を析出する場合は...

青の中に相対的に黄色い部分のある画像
青い部分 51.0, 87.0, 186.0
くすんだ青の部分 56.0, 87.0, 97.0

 デフォルトの色の閾値 10 では相対的に黄色い部分が全く析出できません。

黄色マスク 色の閾値 = 10

 そこで、閾値を30まで上げると、うっすら姿を現しました。

黄色マスク 色の閾値 = 30

 さらに、閾値を50まで上げると明確になります。

黄色マスク 色の閾値 = 50

 この相対的に黄色い部分の透過度を上げたい場合は、透過度の係数を上げます。

黄色マスク 色の閾値 = 50 透過度 = 2.5

 相対的に黄色い部分の透過度が上がりました。


 次は、赤い中で相対的に黄色い部分を析出してみます。赤の中にオレンジの部分があります。

オリジナル
赤部分 191.0, 61.0, 64.0
オレンジ部分 191.2, 102.0, 12.8

 これを相対色マスク作成ツールに読み込むとデフォルト値では真っ白になってしまい、区別できません。

黄色マスク 色の閾値 = 10

 これは赤と言っても朱色で、結構全体的に黄色味が強いため、デフォルト値 (10) では、全体が透過してしまうためです。そこで、今度は上とは反対に閾値をマイナスに下げると...

黄色マスク 色の閾値 = -10

 これで初めて、相対的に黄色い部分との区別がつくようになりました。さらにもっと閾値を下げると...

黄色マスク 色の閾値 = -30

 コントラストがより明確になります。

 このようにもともと青みが強い or 黄色味が強い場合に相対的に黄色い部分を析出するには閾値を調整する必要があります。