お知らせ
最新版は以下のアップデートの案内ページからダウンロードをお願いします。また、新バージョンのアップデートに合わせて適宜内容の補訂を行っています。
[2024.10.14 アップデート]
内部処理 32bit 化 & 緑、褐色補正レイヤー改訂版です。
[2024. 8.7 アップデート]
yasuo-ssi.hatenablog.com 内部処理 32bit 化前の最終バージョンです。
--------------------
過去のバージョンを探している方は以下のページをご覧ください。
[2022.7]
本記事の記述内容は、2022.7.28にバージョンアップした新バージョン (Ver. 4.5x) のImageJ用プラグインに対応した記述です。旧記事をご覧になる方は以下のページをご覧ください。
目次
1. 本連載記事の概要
3. 写真補正の原理
4. Bチャンネル再建法による不均等黄変・褪色ネガ写真補正の方法
5-1. 具体的な補正実施手順 - 準備 (本記事)
5-3a. 黄色を残す部分の編集方法
6. 追加マニュアル補正の実施
番外編. ART のみを使った B チャンネル再建法による不均等黄変画像の補正
補足. GIMPの代わりにPhotoshopで不均等黄変画像の編集を行う
補足. 標準的なBチャンネル再建法(+汎用色チャンネルマスク作成ツール)による黄変写真補正過程
チュートリアルビデオ. 決定版! 不均等黄変・褪色ネガ写真のデジタル補正術・チュートリアルビデオ(ハイブリッド補正対応版)
練習問題. 黄変ネガカラー写真補正の練習問題
5. Bチャンネル再建法による具体的な補正実施手順
では、ここから具体的な、Bチャンネル再建法による写真補正の実施手順をご説明します。今回は準備編です。
5.1 準備
以下の説明では、画像加工ソフトウェアとして、NIH (アメリカ国立衛生研究所)が開発したフリーウェアのImageJと、フォトレタッチソフトとして、フリーウェアのGIMPを使用します。
これ以外に私が作成したImageJ用ならびにGIMP用のPlug-inを使います。GIMPについては、昨年以降新規GIMP用Plug-in を開発して、操作の面倒な部分や、知識が必要な部分は、極力自動化したので、GIMPの編集操作自体にさほど精通していなくても、十分編集ができるようになっていると思います。しかし、マスク編集等一部マニュアル作業が残っています。
GIMPの基本操作について学びたい場合は、明治大学で作成した『画像編集入門 (GIMP)』がPDFファイルになっていて、結構良かったのですが、残念ながら、現在ホームページ上で公開されていません。ただ、キャッシュされたファイルはダウンロードできるようなので、検索エンジンで探してみてください。また、私も、GIMP の編集操作解説をトピック別に書いております。このほかにもGIMPの操作について解説したサイトがあると思いますので、それらを参考にしてください。
またバージョンは2.10を前提とします。それ以前は16bit画像非対応なので非推奨です。また2.99は仕様が大きく変わっていて、拙作のプラグインが走りませんので、これも対象外とします。なお、プラットフォームはWindows以外に、Linux, Mac OS でも動きます。動作確認は、Windwos10, Linux (Ubuntu 20.04), Mac OS X Monterey (ARM Chip)でとっています。
なお、ImageJで作成する素材ファイルはTIFFファイルですので、GIMPでなくてもレイヤー編集をサポートした画像編集ソフトなら(例えば Photoshop) どれでも編集作業ができるはずです。
しかし、それらについては、私は編集サポートツールを作成しておりませんので、ImageJ 上で作成した素材ファイルからフルスクラッチで編集することになります。Photoshopで編集を行いたい方も、GIMPは無料ですので、GIMP上で基本編集を済ませてPSDファイルに変換したものをPhotoshopに読ませて編集することをお勧めします。なお、一応、GIMPを使わずにPhotoshopで編集する方法について解説した記事を準備しております。上のリンクからご覧ください。但し、アップデートしていませので、ファイル構成等は本記事や 5-2 を見て適宜読み替えてください。
5.1.1 ImageJのインストールとPlug-inの導入
まず、ImageJに関してですが、オリジナルのNIH配布バージョンですとデフォルトの状態で Pythonの標準ライブラリを引用することができません。私の作成したPlug-inはPythonの標準ライブラリを使っていますので、オリジナルバージョン上では正しく動作しません。このためImageJのFijiディストリビューションを使ってください。ダウンロード先は以下です。ここからご自分のプラットフォームに適したImageJをダウンロードします。
Windowsの場合、ImageJの具体的なインストール方法は以下の記事をご覧ください。
Linux (Ubuntu) の場合は、以下をご覧ください。
Mac OSの場合は、以下をご覧ください。
次に、私が作成したImageJ用Plug-in (およびGIMP用Plug-inを含む)をこのページ冒頭にリンクが貼ってある最新版案内ページからダウンロードして下さい (右クリックして[新しいタブで開く]を選択するのが良いと思います)。
ダウンロードしたら、ファイルを解凍し、ImageJに登録します。
1) ImageJ、Fijiディストリビューションがインストールされているフォルダ Fiji.app フォルダの下にある pluginsフォルダに、解凍したファイルをコピーします。もし可能であれば、このフォルダの下に、My_Plugins というようなフォルダを作って、その下にコピーしたほうがメニュー上分かりやすいでしょう。
なお、Linux の場合は、さらに各プラグインファイルに対し、ターミナル・コンソールから
chmod +x ファイル名
のコマンドを適用し、実行権限を付与して下さい。なお、Mac OSの場合、ImageJのPythonプログラムに関しては、実行権限を与えなくても動くようです。Mac OSにおけるインストール方法については、以下に記事を書いておきました。
2) すると、[Plugins]メニューの下のほうからFile Maker for Photo color adjustment という名のPlug-inが選択できるようになります(下の図では、My_Plugins というフォルダを作ってその下に置いているので、メニューも、[Plugins]→[My Plugins]の下から起動するようになっています)。
なお、Plug-inを登録せずに走らせることも可能です。その場合は、メニューの[File]→[Open]で、このPlug-inファイルを選んでください (現在のバージョンは、下図とは、ファイル名のバージョン番号が異なっています)。
なお、Plug-inを登録せずに走らせることも可能です。その場合は、メニューの[File]→[Open]で、このPlug-inファイルを選んでスクリプトエディタに読み込んでください。なお、ImageJ本体は日本語のファイル名、フォルダ名に対応していません。従って、Plug-inファイルを置くフォルダには、日本語を使っていないことをご確認ください。なお、拙作のプラグイン・プログラム自体は日本語のファイル名、フォルダ名に対応していますので、編集対象となるファイルは、日本語名を使っていたり、日本語名フォルダに置いていても問題ありません。詳しくはこちらの記事をご参照ください。
Plug-inを読み込むときに何らかのエラーメッセージが出るかもしれませんが無視して構いません。するとPlug-inを編集するエディタが立ち上がります。
そこで、[Language]にPythonを指定してください。実行させるときはエディタのメニューの[RUN]を選ぶと実行します。
5.1.2 GIMPへのPlug-inの導入
当然ながら既に、GIMP2.10.x がインストールされていることを前提とします。インストールされていなければ、公式サイトからセットアップファイルをダウンロードしてインストールしておいてください。Linux (Ubuntu) 、ならびにMac OSにおけるインストールは下記の記事をご参照ください。
なお、GIMP2.99では、Pythonで書くプラグインの仕様が大幅に変わるので拙作のプラグインは全く動きません。必ず2.10をお使いください。
まず、私が作成したPlug-inをダウンロードしていただきますが、先ほどダウンロードしていただいたImageJ用Plug-inが含まれる圧縮ファイルに同梱されています。このファイルのなかのGIMP用Plug-inを解凍して使います。
なおGIMP用プラグインには、ImageJで作成したファイルをGIMPに読み込むプラグインと、編集したレイヤーから再建したBチャンネル画像を合成し、さらにそれを使ってRGB合成まで行う、2種類のプラグインが含まれています。また、2021/1/17より、英語表示バージョンと、日本語表示バージョンの両方が同梱されています(ファイル末尾にJがつくもの)。どちらかを使ってください。
※なお、Ver. 5 から、作成するファイル名を変更しました。そのため、今までお使いいただいていた方も、Ver. 5 に更新する際は、GIMP用ファイル読み込みプラグインも更新してください。なお、古いバージョンのGIMP用読み込みプラグインを併用したい場合があると思いますが、その場合は古いバージョンのプラグインの末尾から8行目に
"ファイル読込...",
とあると思いますが、それを
"ファイル読込(旧)...",
などと、変えておくと、旧バージョンと新バージョンを併用できます。
またRGB合成プラグインの方は更新の必要はありません。
これらのファイルは、Windowsの場合は、次のフォルダにコピーしてください。
C:\Users\%username%\AppData\Roaming\GIMP\2.10\plug-ins
(特定のユーザのみ使えるようにする場合)
※ %username% というところは具体的なユーザ名が入ります
または、
C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins
(どのユーザでも使えるようにする場合)
.config/GIMP/2.10/plug-ins
にプラグインを置いてください。なお置いた各プラグインファイルに関しては、ターミナル・コンソールを使って、
chmod +x ファイル名
で、実行権限を付与しないと認識されません。
Library/Application Support/GIMP/2.0/plug-ins/
にプラグインを置き、やはり実行権限を付与しなければならないのは、Linux と同じです。なお、Linuxユーザでターミナル・コンソールの使い方をご存じない方はいないと思いますが、Macユーザではターミナル・コンソールをいじったことがない、という方もいらっしゃるかと思います。ちょっとハードルが高いかもしれません。そこで、以下に解説ページを用意しました。
他のプラットフォームやOSバージョンが異なるため、上記のディレクトリではだめな方、デフォルトの設定を変更している方の場合、プラグインを置くフォルダーは、メニュー→[編集]→[設定]→[フォルダー]→[プラグイン]で確認できます。あるいはネットで検索してみてください。
正しく登録されますと、下図のようにメニューに[My Plugins]という項目が現れ、その下から[黄変写真補正ツール Ver2]→[ファイル読込...] および [新B画像作成→RGB合成...]の2つが選べるようになります。
以上で準備は終わりです。
-----------------------------------
なお、今回Plug-in作成に当たって、いくつものサイトを当たって参考にさせていただきましたが、特に以下のサイトに関しては特に参考になりました。筆者の方々には深く感謝いたします。
〇「10分でできるImageJ自動化」 (バイオ系だけどプログラミング始めてみました 筆者: さとし氏) https://satoshithermophilus.hatenablog.com/entry/2017/08/08/222531
本サイトの記述は非常に参考になりました。ここでのお勧めに従って、私のPlug-inも、一番最初は、一旦マクロの形で記録したものをPythonスクリプト化して作りました。ただどうしても IJ.run(" ")で走らせられない部分のみPythonのネイティブコードで置き換える、というところから始めました。
現在は IJ.run(" ") で走らせている部分はだいぶ書き換えましたが、それでもネイティブコードで書きなおすとコードが長くなってしまう部分を中心に、残しています。
〇"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 というGIMPのPythonスクリプトで、Plug-inでGIMPの入力ダイアログを出すサンプルは、非常に参考になりました。
〇「PythonでGIMPのスクリプトを書く(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) は、個人的および非営利用途であれば、自由に使っていただいて構いませんが、本技法を使って何らかの成果 (編集した写真等) を公表する場合は、本記事で紹介した技法を使った旨クレジットをつけて公表していただくことをお願いします。
営利目的で利用される場合は別途ご連絡ください。
また、本ソフトウェアは現状のまま提供されるものし、作者はこれを使ったことによるいかなる損害補償等にも応じられないことを了解の上使っていただくものとします。
但し、もしソフトウェアのバグがありましたら、ご連絡いただければなるべく改善するよう努めたいと思います。