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

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

決定版! 不均等黄変・褪色ネガ写真のデジタル補正術 (5-1) (2022.7 ハイブリッド補正対応版)

f:id:yasuo_ssi:20210310145522j:plain

 

お知らせ

[2023.1.14 バージョンアップ]

 以下に本ツールのバージョンアップ版を公開しました。ダウンロードはそちらから。

yasuo-ssi.hatenablog.com

[2023.1.8 補訂]

 Bチャンネル再建法ツール ハイブリッド・アルゴリズム実装版 Ver. 4.8 バージョンアップに伴い、リンクを補訂しました。

[2022.10.1 補訂]

 Bチャンネル再建法ツール アルゴリズム & UI 一部変更版 Ver. 4.7 公開に伴い、リンクを補訂しました。

[2022.9.9 補訂]

 Bチャンネル再建法ツール アルゴリズム & UI 一部変更版 Ver. 4.6 公開に伴い、リンクを補訂しました。

[2022.8.20 補訂]

 Bチャンネル再建法ツールを、バグフィックス版 Ver. 4.54公開に伴い、リンクを補訂しました。

[2022.8.6 補訂]

 Bチャンネル再建法ツールを、Ver. 4.53へバージョンアップしたことに伴い、リンクを補訂しました。

[2022.7]

 本記事の記述内容は、2022.7.28にバージョンアップした新バージョン (Ver. 4.5x) のImageJ用プラグインに対応した記述です。旧記事をご覧になる方は以下のページをご覧ください。

 2021.12記事

 2020.7記事

目次

1. 本連載記事の概要 

2. 今まで紹介されてきた経年劣化による変褪色写真の補正術 

3. 写真補正の原理    

4. Bチャンネル再建法による不均等黄変・褪色ネガ写真補正の方法                

5-1. 具体的な補正実施手順 - 準備 (本記事)  

5-2. 具体的な補正実施手順 - ImageJによる作業

5-3. Bチャンネル再建法による具体的な補正実施手順 - GIMPによる作業

6-1. 追加マニュアル補正の実施 - 補正不完全の原因分析と追加補正方針の決定 

6-2. 追加マニュアル補正の実施 - 追加編集作業の実際

補足. GIMPの代わりにPhotoshopで不均等黄変画像の編集を行う

補足. Bチャンネル再建法 補正ツール簡易版

補足. 標準的なBチャンネル再建法(+汎用色チャンネルマスク作成ツール)による黄変写真補正過程

チュートリアルビデオ. 決定版! 不均等黄変・褪色ネガ写真のデジタル補正術・チュートリアルビデオ(ハイブリッド補正対応版)

練習問題. 黄変ネガカラー写真補正の練習問題

5. Bチャンネル再建法による具体的な補正実施手順

 では、ここから具体的な、Bチャンネル再建法による写真補正の実施手順をご説明します。

5.1 準備

 以下の説明では、画像加工ソフトウェアとして、NIH (アメリ国立衛生研究所)が開発したフリーウェアのImageJと、フォトレタッチソフトとして、フリーウェアのGIMPを使用します。

 これ以外に私が作成したImageJ用ならびにGIMP用のPlug-inを使います。GIMPについては、昨年以降新規GIMP用Plug-in を開発して、操作の面倒な部分や、知識が必要な部分は、極力自動化したので、GIMPの編集操作自体にさほど精通していなくても、十分編集ができるようになっていると思います。しかし、マスク編集等一部マニュアル作業が残っています。

 GIMPの基本操作について学びたい場合は、明治大学で作成した『画像編集入門 (GIMP)』がPDFファイルになっていて、結構良かったのですが、残念ながら、現在ホームページ上で公開されていません。ただ、キャッシュされたファイルはダウンロードできるようなので、検索エンジンで探してみてください。このほかにもGIMPの操作について解説したサイトがあると思いますので、それらを参考にしてください。

 またバージョンは2.10を前提とします。それ以前は16bit画像非対応なので非推奨です。また2.99は仕様が大きく変わっていて、拙作のプラグインが走りませんので、これも対象外とします。なお、プラットフォームはWindows以外に、Linux, Mac OS でも動きます。動作確認は、Windwos10, Linux (Ubuntu 20.04), Mac OS Monterey でとっています。

 なお、ImageJで作成する素材ファイルはTIFFファイルですので、GIMPでなくてもレイヤー編集をサポートした画像編集ソフトなら(例えば Photoshop) どれでも編集作業ができるはずです。

 しかし、それらについては、私は編集サポートツールを作成しておりませんので、ImageJから作成した素材ファイルからフルスクラッチで編集することになります。Photoshopで編集を行いたい方も、GIMPは無料ですので、GIMP上で基本編集を済ませてPSDファイルに変換したものをPhotoshopに読ませて編集することをお勧めします。なお、一応、GIMPを使わずにPhotoshopで編集する方法について解説した記事を準備しております。上のリンクからご覧ください。

5.1.1 ImageJのインストールとPlug-inの導入

 まず、ImageJに関してですが、オリジナルのNIH配布バージョンですとデフォルトの状態で Pythonの標準ライブラリを引用することができません。私の作成したPlug-inはPythonの標準ライブラリを使っていますので、オリジナルバージョン上では正しく動作しません。このためImageJのFijiディストリビューションを使ってください。ダウンロード先は以下です。ここからご自分のプラットフォームに適したImageJをダウンロードします。

imagej.net 

 Windowsの場合、ImageJの具体的なインストール方法は以下の記事をご覧ください。

yasuo-ssi.hatenablog.com 

 Linux (Ubuntu) の場合は、以下をご覧ください。

yasuo-ssi.hatenablog.com

 Mac OSの場合は、以下をご覧ください。

yasuo-ssi.hatenablog.com

 次に、私が作成したImageJ用Plug-in (およびGIMP用Plug-inを含む)をこちらからダウンロードして下さい (右クリックして[新しいタブで開く]を選択するのが良いと思います)。

 ダウンロードしたら、ファイルを解凍し、ImageJに登録します。

1) ImageJ、Fijiディストリビューションがインストールされているフォルダ Fiji.app フォルダの下にある pluginsフォルダに、解凍したファイルをコピーします。もし可能であれば、このフォルダの下に、My_Plugins というようなフォルダを作って、その下にコピーしたほうがメニュー上分かりやすいでしょう。

 なお、Linux の場合は、さらに各プラグインファイルに対し、ターミナル・コンソールから

 chmod +x ファイル名

のコマンドを適用し、実行権限を付与して下さい。なお、Mac OSの場合、ImageJのPythonプログラムに関しては、実行権限を与えなくても動くようです。Mac OSにおけるインストール方法については、以下に記事を書いておきました。

yasuo-ssi.hatenablog.com

2) すると、[Plugins]メニューの下のほうからFile Maker for Photo color adjustment という名のPlug-inが選択できるようになります(下の図では、My_Plugins というフォルダを作ってその下に置いているので、メニューも、[Plugins]→[My Plugins]の下から起動するようになっています)。

 なお、Plug-inを登録せずに走らせることも可能です。その場合は、メニューの[File]→[Open]で、このPlug-inファイルを選んでください (現在のバージョンは、下図とは、ファイル名のバージョン番号が異なっています)。

f:id:yasuo_ssi:20211119214349p:plain

メニュー位置

 なお、Plug-inを登録せずに走らせることも可能です。その場合は、メニューの[File]→[Open]で、このPlug-inファイルを選んでスクリプトエディタに読み込んでください。なお、ImageJ本体は日本語のファイル名、フォルダ名に対応していません。従って、Plug-inファイルを置くフォルダには、日本語を使っていないことをご確認ください。なお、拙作のプラグイン・プログラム自体は日本語のファイル名、フォルダ名に対応していますので、編集対象となるファイルは、日本語名を使っていたり、日本語名フォルダに置いていても問題ありません。詳しくはこちらの記事をご参照ください。

f:id:yasuo_ssi:20200726212855j:plain

f:id:yasuo_ssi:20211119214620p:plain



 Plug-inを読み込むときに何らかのエラーメッセージが出るかもしれませんが無視して構いません。するとPlug-inを編集するエディタが立ち上がります。

f:id:yasuo_ssi:20200726213254j:plain

 そこで、[Language]にPythonを指定してください。実行させるときはエディタのメニューの[RUN]を選ぶと実行します。
 

5.1.2 GIMPへのPlug-inの導入

 当然ながら既に、GIMP2.10.x がインストールされていることを前提とします。インストールされていなければ、公式サイトからセットアップファイルをダウンロードしてインストールしておいてください。Linux (Ubuntu) 、ならびにMac OSにおけるインストールは下記の記事をご参照ください。

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

 なお、GIMP2.99では、Pythonで書くプラグインの仕様が大幅に変わるので拙作のプラグインは全く動きません。必ず2.10をお使いください

 まず、私が作成したPlug-inをダウンロードしていただきますが、先ほどダウンロードしていただいたImageJ用Plug-inが含まれる圧縮ファイルに同梱されています。このファイルのなかのGIMP用Plug-inを解凍して使います。

 なおGIMPプラグインには、ImageJで作成したファイルをGIMPに読み込むプラグインと、編集したレイヤーから再建したBチャンネル画像を合成し、さらにそれを使ってRGB合成まで行う、2種類のプラグインが含まれています。また、2021/1/17より、英語表示バージョンと、日本語表示バージョンの両方が同梱されています(ファイル末尾にJがつくもの)。どちらかを使ってください。

 

 これらのファイルは、Windowsの場合は、次のフォルダにコピーしてください。

C:\Users\%username%\AppData\Roaming\GIMP\2.10\plug-ins

(特定のユーザのみ使えるようにする場合)
※ %username% というところは具体的なユーザ名が入ります

または、

C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins

(どのユーザでも使えるようにする場合)

 

 Linux の場合は、各ユーザのホームディレクトリの下、

 .config/GIMP/2.10/plug-ins

プラグインを置いてください。なお置いた各プラグインファイルに関しては、ターミナル・コンソールを使って、

chmod +x ファイル名

で、実行権限を付与しないと認識されません。

 Mac OSの場合は、各ユーザのホームディレクトリの下の、

Library/Application Support/GIMP/2.0/plug-ins/

プラグインを置き、やはり実行権限を付与しなければならないのは、Linux と同じです。なお、Linuxユーザでターミナル・コンソールの使い方をご存じない方はいないと思いますが、Macユーザではターミナル・コンソールをいじったことがない、という方もいらっしゃるかと思います。ちょっとハードルが高いかもしれません。そこで、以下に解説ページを用意しました。

yasuo-ssi.hatenablog.com

 他のプラットフォームやOSバージョンが異なるため、上記のディレクトリではだめな方、デフォルトの設定を変更している方の場合、プラグインを置くフォルダーは、メニュー→[編集]→[設定]→[フォルダー]→[プラグイン]で確認できます。あるいはネットで検索してみてください。

  正しく登録されますと、下図のようにメニューに[My Plugins]という項目が現れ、その下から[黄変写真補正ツール Ver2]→[ファイル読込...] および [新B画像作成→RGB合成...]の2つが選べるようになります。

以上で準備は終わりです。

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

 なお、今回Plug-in作成に当たって、いくつものサイトを当たって参考にさせていただきましたが、特に以下のサイトに関しては特に参考になりました。筆者の方々には深く感謝いたします。

ImageJのPythonプラグインの作成に関しては...

〇「10分でできるImageJ自動化」 (バイオ系だけどプログラミング始めてみました 筆者: さとし氏) https://satoshithermophilus.hatenablog.com/entry/2017/08/08/222531

 本サイトの記述は非常に参考になりました。ここでのお勧めに従って、私のPlug-inも一旦マクロの形で記録したものをPythonスクリプト化したものです。ただ IJ.run("    ")で走らせられない部分のみPythonのネイティブコードで置き換えたようなものです。

 

GIMPPythonプラグイン作成に関しては...

〇"GIMP: Create image stack from all image files in folder" (Stack Overflow Q & A)
 IMP: Create image stack from all image files in folder - Stack Overflow

 ここの Joao S. O. Bueno氏回答の、複数の画像ファイルを1つの画像ファイルのレイヤーとして読み込むコード部分は、これもやり方が本当に見当がつかず、そのままパクらせていただいています。なお、GIMP 2.8より前では、GIMP-Pythonスクリプトでレイヤーに読み込ませることはできず、手動で読み込ませるしかないようです。本稿でも64bitで安定して動くGIMP2.10を前提とします。

〇 "Beginning GIMP: From Novice to Professional" by Akkana Peck
Writing GIMP Scripts and Plug-Ins

 ここにあるAkkana Peck氏が作成した pyui.py というGIMPPythonスクリプトで、Plug-inでGIMPの入力ダイアログを出すサンプルは、非常に参考になりました。

〇「PythonGIMPスクリプトを書く(Python-Fuの書き方)」(d.sunnyone.org 筆者: Sunnyone氏) http://d.sunnyone.org/2014/10/pythongimppython-fu.html

 GIMPにおけるPythonプログラミングの基本がサクっと紹介されています。で、ここで指摘されているWindowsではデバッグがやりにくい、という指摘はまさにその通りで、文法的に間違っているとPlug-inがメニューに現れないだけで、どこが間違っているのかさっぱりわかりません。

 なお、最新バージョン (2.10.32) の場合、メニューに現れるところまでこぎつければ、Windows上でデバッグを行う場合、

pdb.gimp_message_get_handler(ERROR_CONSOLE)

を使うと、

gimp.message の出力先がエラーコンソールになり、中間過程を確認することができます。

 

〇 「マイ地図タイルを作ろう #2 GIMP-Python プラグイン入門」(いきなり日曜工作 筆者: れんどる氏) https://lendl.sakura.ne.jp/journals/creating-my-own-tiles-2/

GIMP-Pythonの主要な参考サイトについて指摘されています。

 

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

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

 営利目的で利用される場合は別途ご連絡ください。

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

 

f:id:yasuo_ssi:20201101115651p:plain