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

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

決定版! 不均等黄変・褪色ネガ写真のデジタル補正術 (5-1) (2021.12バージョン)

f:id:yasuo_ssi:20210310145522j:plain

 

お知らせ

[2022.7]

 当記事には、以下に2022.7.28公開のハイブリッド補正対応版補正ツールに対応した、新たな改訂版があります。ハイブリッド補正版を使われる方は以下の改訂版からプログラムのダウンロードを行ってください。

yasuo-ssi.hatenablog.com

 ーーーーーーー

 2022.7.17に新バージョンのImageJ用プラグインを公開しました。新プラグインは以下のページからダウンロードをお願いします。

yasuo-ssi.hatenablog.com

[2021.12]

 2021年 12月に新バージョンのImageJ用プラグインを公開しました。本ページはこの新しいプラグインに対応するものです。詳しい変更内容はこちらのページをご覧ください。なお、当ページのダウンロードリンクは、新ファイルとなっています。前のバージョン(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を使ったマニュアル作業が発生しますので、GIMPの操作については理解されていることを前提とさせていただきます。GIMPのインストールや基本操作については他のサイトや書籍などを参考にしてください。またバージョンは2.10を前提とします。なお、プラットフォームはWindows10のパソコンを使いましたが、おそらくMac OSLinux等の他のプラットフォームでも動くのではないかと思います (ImageJ, GIMP自体はいずれもMac OS, Linux両対応です)。試してみて、動く、動かないといった報告をいただけると幸いです。以下Windows10を前提に説明していきます。他のプラットフォームの方は適宜読み替えてください。

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 というようなフォルダを作って、その下にコピーしたほうがメニュー上分かりやすいだろう。

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ファイルを選んでください (。

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) の場合はUbuntu ソフトウェアセンターからスマホのように簡単にインストールできます。Mac OSの場合はこちら。なお、GIMP2.99では、Pythonで書くプラグインの仕様が大幅に変わるので拙作のプラグインは全く動きません。必ず2.10をお使いください。2.8でも走るかもしれませんが、8bit画像にしか対応していないので、利用はお勧めしません。

 まず、私が作成したPlug-inをダウンロードしていただきますが、先ほどダウンロードしていただいたImageJ用Plug-inが含まれる圧縮ファイルに同梱されています。なお、1/17より、英語表示バージョンと、日本語表示バージョンの両方が同梱されています。どちらかを使ってください。ファイル名は my-load-files-plugin... というような名前になっています。このファイルのなかのGIMP用Plug-inを解凍して、Windowsの場合は、次のフォルダにコピーしてください(Ver. 2.10の場合)。他のプラットフォームやバージョンが異なる方、デフォルトの設定を変更している方の場合、プラグインを置くフォルダーは、メニュー→[編集]→[設定]→[フォルダー]→[プラグイン]で確認できます。あるいはネットで検索してみてください。

 

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

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

または、

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

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

 

 

  正しく登録されますと、下図のようにメニューに[My Plugins]という項目が現れ、その下から[Photo Adjustment]→[Load Files...]が選べるようになります。

f:id:yasuo_ssi:20200723214838j:plain

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

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

 なお、今回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ではデバッグがやりにくい、WindowsGIMPではメッセージボックスが出ない、という指摘はまさにその通りで、文法的に間違っているとPlug-inがメニューに現れないだけで、どこが間違っているのかさっぱりわかりません。またメッセージボックスを出して途中うまく走っているのかを確認しようにも、私のバージョン(2.10.20)では指摘の通り全く出ず確認できません。コンソールから確認できるといっても断片的なコードが文法的に正しいかどうかだけ。つまり根本的にデバッグというものが不可能なので、トライ・アンド・エラーでいろいろ考えるということが、そもそもできません。結局どこかにある「正解」をネットで探ってパクって組み合わせるということしかできませんでした。きわめてストレスの大きいプログラミング作業(と言えるかどうか?)でした。

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

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

 GIMP-Pythonプログラミングについては、いずれ情報をまとめた記事を書きたいところですが、いまのところ半可通のままついていくのが精いっぱいな状況です。

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

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

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

 

f:id:yasuo_ssi:20201101115651p:plain