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

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

darktableによるマゼンタがかったカラーネガフィルム画像補正の試み

 すでに当ブログの中でマゼンタがかったネガフィルム画像の補正の方法について何度か言及してきました(下記記事参照)。以下の記事では、ART、GIMPおよびImageJ+拙作のツールなどを使ってきました。主としてチャンネルミキシング(GチャンネルにRチャンネルの情報をミキシング)を行って調整しています。

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

 ところで darktable はかなり柔軟なモジュールの使い方やマスクの掛け方が可能です。そこで darktable を使うとよりシンプルにこのようなケースの補正ができるのではないかと考えました。以下そのこころみの記録です。基本的にチャンネルミキシングの手法を使っているのは同じです。

 題材として、以下のオリジナル画像を補正していきます。若干全体的にマゼンタがかっている典型的なネガカラーフィルムスキャン画像です。

f:id:yasuo_ssi:20220321142733p:plain

オリジナル

・darktableでの作業

 まず、darktableで読み込んで、露出とホワイトバランスを自動調整します。これでもかなりマゼンタがかりが消えました... が不十分です。

f:id:yasuo_ssi:20220321142937p:plain

darktable で露出とホワイトバランスを自動調整

 次にチャンネルのミキシングを行います。darktableではカラーキャリブレーションモジュールで可能です。ここで、darktableが複雑なマスク編集が可能なことを考えて、明るさによってチャンネルミキシングの適用量を変えることを考えます。つまり、暗い部分ではGチャンネルに対するRチャンネルの混入量を多めに、明るい部分は混入量を少なめにミキシングしていきます。これをdarktableのマスク機能を活用して実現します。また、赤みが強い部分はマスクを使ってミキシングの適用を除外します。

 そこで、カラーキャリブレーションをマルチインスタンス機能で2つにします。

f:id:yasuo_ssi:20220321143110p:plain

マルチインスタンスを使ってカラーキャリブレーションモジュールを2重にする

 

  最初に、暗い部分の調整を行います。2つ作った一方のカラーキャリブレーションインスタンスに、パラメトリックマスクを使って、グレースケールの暗い部分のみ作用させるマスクを作成します。

f:id:yasuo_ssi:20220321143419p:plain

1つ目のモジュールにマスクを設定

 マスク表示を消したら、Gチャンネルに対し、Rの混入量70% Gの混入量30%を設定します。こちらは混入量多めです。

f:id:yasuo_ssi:20220321144009p:plain

上のモジュールのGチャンネルに対し混入量を R 0.700 G 0.300程度に調整

 次に明るい部分の調整に入ります。ここでは明るく、かつ赤みが強くない部分のみに調整を適用するようマスクを作成して調整します。まず、もう一つのインスタンスに移り、より明るい部分のマゼンタがかりを補正するマスクを設定します。まずパラメトリックマスクを使いRチャンネルに基づいて明るい部分を有効化するマスクを作成します。

f:id:yasuo_ssi:20220321145526p:plain

2つ目のモジュールに対しRチャンネルマスク設定

 次に、マスク組み合わせ方式をエクスクルーシブにしてBチャンネルに基づいて、上で作成したマスクの範囲を狭めます。つまりBの値がある程度高いところのみに上で作ったマスクを狭めるのです。このように設定する理由は、まず元々赤みの強い部分は、チャンネルミキシングから除外させたいということがあります。元々赤みの強い部分にチャンネルミキシングを適用すると彩度が下がり色が濁ります。そして、拙作の相対RGB色マスク画像作成ツールだと、相対的に赤い部分を指定したマスクが簡単にできます。しかしdarktableは各色チャンネルの絶対値に基づくマスクしか作れません。そこでまずRチャンネルでマスクを設定した後、赤みの強い部分を除外するため、Bチャンネルをいじります。赤みの強い部分は、R値が高い一方、B値は低いはずです。そこでエクスクルーシブモードでB値の比較的高い部分のみ指定すると、R値が高く、かつB値が低い部分が除外されるだろうという話です。ただ拙作の相対RGB色マスク画像作成ツールほど正確に相対的に赤い部分のみ抽出できるわけではありません。

 なお、エクスクルーシブモードとは [最初の指定∩(and / かつ) 2番目の指定] をマスク範囲とするモードです。インクルーシブモードは∪(or / または) になります。

f:id:yasuo_ssi:20220321145704p:plain

同じモジュールに対しエクスクルーシブでBチャンネルマスク設定

 設定したら、最後にマスクを反転させます。今回のマスクは黄色く指定した部分に効果を適用しないためですので、マスクを反転させないと効果のかかり方が逆になってしまいます (反転させないと黄色い部分に対し効果が適用される)。マスク反転ボタン (すべてのチャンネルの極性を反転) は、[パラメトリックマスク] の一番右端にあります。なお、反転させてもマスク表示は反転せず変わらないので注意して下さい。

f:id:yasuo_ssi:20220408094513p:plain

マスク反転ボタン

 このマスクを掛けたインスタンスのGチャンネルに対し、今度はRの混入量を低くし、R 35% G 65%になるように調整します。

f:id:yasuo_ssi:20220321145927p:plain

同じモジュールのGチャンネルに対し R 350 G 650前後でミキシング

 こうして暗い部分はRの混入量を70%に、比較的明るい部分は35%にした画像ができました。だいぶ良くなりましたが、まだ空のマゼンタが残っています。そこで調整にカラーゾーンを使います。

f:id:yasuo_ssi:20220321153153p:plain

カラーゾーンでピックアップ

 カラーゾーンモジュールの色相を開いたら、画面上の空のマゼンタが残る部分をピックアップ。するとその場の色相が、色相スペクトラムのどこに位置するのか表示されます。

f:id:yasuo_ssi:20220321153819p:plain

カラーゾーンで空のマゼンタを修正

 その部分を中心に青い方向に色相を変化させます。

f:id:yasuo_ssi:20220321154037p:plain

出力結果

 これで一旦出力してみました。ただまだマゼンタがちゃんととり切れていない感があります。かと言ってカラーゾーンの変化量をもっと増やすと不自然になります。

 

 

 そこで今度は、カラーゾーン適用前の段階で一旦ファイル出力し、結局拙作の相対RGB色マスク作成ツールでマゼンタ補正用マスクを作ってみました。

f:id:yasuo_ssi:20220321151956p:plain

ImageJで相対RGB色マスク作成ツールを起動

 チャンネルの選択は、Magenta/Green および Greenにします。そして以下のパラメータでマゼンタマスクを作ります。

f:id:yasuo_ssi:20220321152130p:plain

パラメータ設定

 できたマゼンタマスク画像はこちらです。

f:id:yasuo_ssi:20220322000840p:plain

出来たマゼンタマスク

 そして、出力したファイルをGIMPに読み込み、レイヤーを複製し、複製したレイヤーにマゼンタマスクを掛け、さらにトーンカーブでGチャンネルを引き上げます。

f:id:yasuo_ssi:20220321152636p:plain

GIMPで補正

 こちらの方がマゼンタ分がより取れます。それを出力します。darktableのマスクは基本的にR, G, B等の絶対値に基づいて作成します。それを、上でやったように、マスクの指定をエクスクルーシブにして複数のマスクを組み合わせ、ある程度疑似的に相対的な色の差に基づくマスクを作ることはできますが、絶対値に関係なく相対的にマゼンタが強いというようなマスクは作れません。その点は拙作の相対RGB色マスク作成ツールの強みです。

f:id:yasuo_ssi:20220321154139p:plain

GIMP出力結果

 さらにRaw現像ソフトに読みこんで、さらに調整して出力した結果がこちらです。

f:id:yasuo_ssi:20220321154857j:plain

最終調整結果

 ちょっと手間がかかりましたが、こちらの方が若干良いように思います。ただ手間に見合うほどの改善かと言われると微妙です。ただマゼンタ被り削減効果は、相対RGB色マスク作成ツールによるマゼンタ補正用マスクの方が可能性は大です。

 darktableは、明度に応じてチャンネルの混入比率を簡単に調整つ出来るので、メリットは大きいです。またdarktable内でほぼ作業が完結できます。ただ、マスクのパラメータの設定の仕方は、拙作のツールよりも難しく、いろいろ考えなくてはいけません。これは自分で作ったツールであるためかもしれませんが、拙作のツールは、相対的に、例えば、赤い部分、マゼンタ部分を指定したマスクを作るというのが直感的に分かりやすいと思っています。またRGBカーブをいじって補正するなら、相対的にR, G, B, Cn, Mg, Y である部分、という基準でマスクを作るほうが、色域指定を行ったマスクを使うより整合的だと思います。また一旦作ったマスクを部分的に色塗りして編集するという点では、Raw現像ソフトを使うより、GIMP (あるいはPhotoshop等) の方がやりやすいです。

 なお、私は普段はARTを使っていますが、ARTはチャンネルミキサーモジュールにおいてマスクを掛けることができないので、そこが難点となります。

 なお、Gチャンネルの暗部飽和が激しい場合は、手間はかかりますが、汎用色チャンネル再構成ツールとGIMPを使って、暗部をRチャンネルに合わせる形でGチャンネルの補正を行ったほうが良いと思います。これらについては、この記事の最初の方にリンクを張った記事をご覧ください。