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

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

決定版! 不均等黄変・褪色ネガ写真のデジタル補正術 (5-1) (2025.4 GIMP3.0 対応版)

f:id:yasuo_ssi:20210310145522j:plain

 

お知らせ

 当記事は、GIMP3 で編集を行う場合のインストラクションです。GIMP2.10で編集を行う場合は、以下の記事をご覧ください。yasuo-ssi.hatenablog.com 

[最新版の入手について]

 最新版は以下のアップデートの案内ページからダウンロードをお願いします。また、新バージョンのアップデートに合わせて適宜内容の補訂を行っています。

[2025.7.18 アップデート]

yasuo-ssi.hatenablog.com

  [2024. 8.7 アップデート]

yasuo-ssi.hatenablog.com 内部処理全面 32bit 化前の最終バージョンです。ご使用のパソコンのメモリが 8 G以下で、24Mピクセル級の画像を扱う場合はこちらを使った方が良いと思います。

目次

1. 本連載記事の概要 

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

3. 写真補正の原理    

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

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

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

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

6. 追加マニュアル補正の実施

番外編. ART のみを使った B チャンネル再建法による不均等黄変画像の補正

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

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

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

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

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

補正手続きの基本的なワークフロー

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

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

 

5.1 準備

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

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

yasuo-ssi.hatenablog.comこれ以外に、GIMP の編集操作解説をトピック別に書いています。

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

 またバージョンは当記事では、GIMP 3.0xを前提とします。Ver. 2.10 用の記事はこちらをご覧ください。なお、動作プラットフォームはWindows, Linux, Mac OS となっています。動作確認は、Windwos10, Linux (Kubuntu 24), Mac OS X  (ARM Chip)でとっています。

 なお、ImageJで作成する素材ファイルはTIFFファイルですので、GIMPでなくてもレイヤー編集をサポートした画像編集ソフトなら(例えば Photoshop) どれでも編集作業ができるはずです。しかし、それらについては、私は編集サポートツールを作成しておりませんので、ImageJ 上で作成した素材ファイルからフルスクラッチで編集することになります。Photoshopで編集を行いたい方も、GIMPは無料ですので、GIMP上でバッチ読み込み & 基本編集を済ませてPSDファイルに変換したものをPhotoshopに読ませて編集することをお勧めします。特に GIMP3 では、PSD ファイルの互換性が高められているはずですので、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 をこのページ冒頭にリンクが貼ってある最新版案内ページからダウンロードして下さい (右クリックして[新しいタブで開く]を選択するのが良いと思います)。

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

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

 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の導入

 当然ながら既に、GIMP3.0.x がインストールされていることを前提とします。インストールしていなければ、以下のページから各 OS に対応したバイナリー等をダウンロードしてインストールしてください。

www.gimp.org

 なお、Linux - flatpak インストールにおいて、Ver. 2.10 と 3.0 の共存インストールを行う場合は、以下の記事をご覧ください。Ver. 2.10 で Python プラグインを使いたい場合は flatpak によるインストールが原則になります。

yasuo-ssi.hatenablog.com

 なお、GIMP 2.10 と 3.0 では、Python プラグインの仕様が大幅に異なります。そのため、Ver. 3.0 で編集作業を行う場合は、Ver. 5.9a の GIMP3 フォルダの中にある GIMP3 用のプラグイン、もしくは、以下より、3.0 専用プラグインをダウンロードしてインストールしてください。2.10 用プラグインは一切使えません。

yasuo-ssi.hatenablog.com

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

Windows

C:\Users\%USERNAME%\AppData\Roaming\GIMP\3.0\plug-ins\

Linux

~/.config/GIMP/3.0/plug-ins/

Mac OS

~/Library/Application Support/GIMP/3.0/plug-ins/

 

 ただし、2.10 と異なる点は、これらのプラグインを直接コピーしてはだめで、プラグインと同名のディレクトリを作成して、その下にコピーします。本プラグインをダウンロードして解凍すると、ディレクトリ付きで解凍されますが、解凍してできた GIMP3_Editing_Migration_Kit_v0.1 というディレクトリの、下にあるディレクトリごとコピーします (GIMP3_Editing_Migration_Kit_v0.1 というディレクトリ自体はコピーしないでください)。

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

chmod +x ファイル名

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

 なお、Linuxユーザでターミナル・コンソールの使い方をご存じない方はいないと思いますが、Macユーザではターミナル・コンソールをいじったことがない、という方もいらっしゃるかと思います。その場合、ターミナル・コンソールの起動の仕方は以下をご参照ください。 yasuo-ssi.hatenablog.com

 

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

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

 

 なお、初めてお使いのコンピュータに GIMP をインストールする場合は、レイヤー ダイアログを表示するように設定してください (デフォルトでは表示されていません)。レイヤー ダイアログが表示されていないと、この後 (5-3) で解説する GIMP 上での編集の説明が、何を言っているのか分からなくなってしまいます。

GIMP のレイヤーダイアログ

 既に GIMP 上でレイヤー ダイアログを使っていて、アップデートでインストールするような場合は、前回の設定がそのまま引き継がれますので対応する必要はありません。

 レイヤー ダイアログの表示設定の方法は、以下のページをご参照ください。

yasuo-ssi.hatenablog.com また当ブログにおける GIMP の編集操作関連の記事については以下にインデックスがありますので必要に応じてご参照ください。

yasuo-ssi.hatenablog.com

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

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

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

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

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

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

 現在は IJ.run("    ") で走らせている部分はだいぶ書き換えましたが、それでもネイティブコードで書きなおすとコードが長くなってしまう部分を中心に、残しています。

 

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