お知らせ
当記事は最初に公開したバージョンのツールに基づく記事になっています。本記事の新バージョン (2021.12版) が以下にありますので、そちらの方をご覧ください。
yasuo-ssi.hatenablog.com--------------------------------------
2021.2.14に新バージョンのImageJ用プラグインを公開しました。詳しい変更内容はこちらのページをご覧ください。なお、当ページのダウンロードリンクは、新ファイルに更新しております。
目次
1. 本連載記事の概要
3. 写真補正の原理
4. Bチャンネル再建法による不均等黄変・褪色ネガ写真補正の方法
5-1. 具体的な補正実施手順 - 準備 (本記事)
5-3. Bチャンネル再建法による具体的な補正実施手順 - GIMPによる作業
6-1. 追加マニュアル補正の実施 - 補正不完全の原因分析と追加補正方針の決定
補足. GIMPの代わりにPhotoshopで不均等黄変画像の編集を行う
補足. 標準的なBチャンネル再建法(+汎用色チャンネルマスク作成ツール)による黄変写真補正過程
チュートリアルビデオ. 決定版! 不均等黄変・褪色ネガ写真のデジタル補正術・チュートリアルビデオ
5. Bチャンネル再建法による具体的な補正実施手順
では、ここから具体的な、Bチャンネル再建法による写真補正の実施手順をご説明します。
5.1 準備
以下の説明では、画像加工ソフトウェアとして、NIH (アメリカ国立衛生研究所)が開発したフリーウェアのImageJと、フォトレタッチソフトとして、フリーウェアのGIMPを使用します。これ以外に私が作成したImageJ用ならびにGIMP用のPlug-inを使います。GIMPについては、GIMPを使ったマニュアル作業が発生しますので、GIMPの操作については理解されていることを前提とさせていただきます。GIMPのインストールや基本操作については他のサイトや書籍などを参考にしてください。またバージョンは2.10を前提とします。なお、プラットフォームはWindows10のパソコンを使いましたが、おそらくMac OS、Linux等の他のプラットフォームでも動くのではないかと思います (ImageJ, GIMP自体はいずれもMac OS, Linux両対応です)。試してみて、動く、動かないといった報告をいただけると幸いです。以下Windows10を前提に説明していきます。他のプラットフォームの方は適宜読み替えてください。
5.1.1 ImageJのインストールとPlug-inの導入
まず、ImageJに関してですが、オリジナルのNIH配布バージョンですとデフォルトの状態で Pythonの標準ライブラリを引用することができません。私の作成したPlug-inはPythonの標準ライブラリを使っていますので、オリジナルバージョン上では正しく動作しません。このためImageJのFiJiディストリビューションを使ってください。ダウンロード先は以下です。ここからご自分のプラットフォームに適したImageJをダウンロードしてください。
すると、圧縮されたファイルがダウンロードされます。Windowsの場合、fiji-win64.zipというファイルがダウンロードされます。それを解凍すると ImageJ.app という実行ファイルを含むフォルダが出てくるので適切なところにコピーします。そこから実行ファイルの本体をたたいて、起動します。なお、ダウンロードサイトでは、Windowsの場合、C:\Program Files\ 以下のフォルダに実行ファイルを置かないよう警告しています。ですが、私は置いてしまっています。要は管理ユーザではなく標準ユーザでログインしてImageJを使っていると、C:\Program Files\ 以下にファイルを書き込む権限がないので自動アップデートが正しく動かないから、そこに置かない方が良いよ、という話です。ただアップデート以外のソフトウェアの実行には支障はありません。アップデートする際は管理ユーザでログインしておけば回避できる問題です。このあたりが分かっていて対処できるなら C:\Program Files\ 以下に置いておいても問題はありませんし、今の説明がよくわからないという方は、別の場所(Fijiディストリビューションのサイトでは、"C:\Users\%username%\ImageJ.app
" を推奨)に置いておいたほうが良いと思います。
またWindowsの場合インストーラーがありませんので、Windowsのメニューに登録したい場合は次の手続きに従う必要があります。
1) 実行ファイル (ImageJ-Win64.exe) の上で右クリックしてメニューから[ショートカットの作成]を選択する。
2) 作成されたショートカットを適当な名前に改名する (例えば「ImageJ - Fiji」など)。
3) 改名したショートカットのファイルを、C:\ProgramData\Microsoft\Windows\Start Menu\Programs に移動する。なお、コピーする際に管理ユーザの権限を取得することが求められる。なお、特定のユーザだけ使用できれば良いのであれば、 C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs にショートカットを置けばよい (%username% には、Windowsにログオンするユーザ名を入れる)。
これによりWindowsのメニューからImageJが実行できるようになります。
次に、私が作成したImageJ用Plug-in (およびGIMP用Plug-inを含む)をこちらからダウンロードして下さい (右クリックして[新しいタブで開く]を選択するのが良いと思います)。
※2021.7.18追記
本日、別URLにて公開していた、Bチャンネル再建法におけるチャンネル合成をサポートするGIMPプラグインを他のツールと併せてダウンロードできるように手直ししました。つまり、ImageJ用プラグイン1本と、GIMP用プラグイン2本(x 日本語版, 英語版)が同梱されている形になっています。
プログラムの内容の変更はありません。
-------------------
なお、以前は、8bit画像用と16bit画像用は異なるファイルとなっていましたが、現在のバージョン(2021.2.14)は統合され一つのファイルとなっています*1。このため、以下の画像中、現在のバージョンと異同がある場合がありますが、ご了承ください。
ダウンロードしたら、ファイルを解凍し、ImageJに登録します。
1) ImageJを起動する。
2) メニューの[Plugins]から、[Install]を選び、解凍した私が作成したImageJ用のPlug-inファイルを開き、次いでPluginフォルダにコピーする(ImageJ用は、ファイル名が、File_Maker_for_Photo_color adjustment... になっている)。
3) [Plugins]メニューの下のほうからFile Maker for Photo color adjustment という名のPlug-inが選択できるようになる(下の図とはバージョン番号が異なっている)。
また、ImageJのインストールディレクトリ (フォルダ) である、Fiji.app の下の plugins というディレクトリにプラグインファイルをコピーしても同じです。
なお、Plug-inを登録せずに走らせることも可能です。その場合は、メニューの[File]→[Open]で、このPlug-inファイルを選んでください (現在のバージョンは、下図とは、ファイル名のバージョン番号が異なっています)。
Plug-inを読み込むときに何らかのエラーメッセージが出るかもしれませんが無視して構いません。するとPlug-inを編集するエディタが立ち上がります。
そこで、[Language]にPythonを指定してください。実行させるときはエディタのメニューの[RUN]を選ぶと実行します。
5.1.2 GIMPへのPlug-inの導入
まず、私が作成した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
(特定のユーザのみ使えるようにする場合)
または、
C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins
(どのユーザでも使えるようにする場合)
正しく登録されますと、下図のようにメニューに[My Plugins]という項目が現れ、その下から[Photo Adjustment]→[Load Files...]が選べるようになります。
以上で準備は終わりです。
※ 2021.6.12追記 (7.18補訂)
本日、Bチャンネル再建法におけるチャンネル合成をサポートするGIMPプラグインを公開しました。ダウンロードは下記から行ってください。インストール方法は、5.1.2に準じてください。
また2021.7.18からは上のダウンロードリンクからダウンロードできるファイルに同梱しています。
yasuo-ssi.hatenablog.com なお、GIMPによる作業手順の説明は、このプラグインの導入を前提としたものに改定しておりますので、このプラグインも必ずインストールしてください。
-----------------------------------
なお、今回Plug-in作成に当たって、いくつものサイトを当たって参考にさせていただきましたが、特に以下のサイトに関しては特に参考になりました。筆者の方々には深く感謝いたします。
〇「10分でできるImageJ自動化」 (バイオ系だけどプログラミング始めてみました 筆者: さとし氏) https://satoshithermophilus.hatenablog.com/entry/2017/08/08/222531
本サイトの記述は非常に参考になりました。ここでのお勧めに従って、私のPlug-inも一旦マクロの形で記録したものをPythonスクリプト化したものです。ただ IJ.run(" ")で走らせられない部分のみPythonのネイティブコードで置き換えたようなものです。
〇"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ではデバッグがやりにくい、Windows版GIMPではメッセージボックスが出ない、という指摘はまさにその通りで、文法的に間違っていると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) は、個人的および非営利用途であれば、自由に使っていただいて構いませんが、本技法を使って何らかの成果 (編集した写真等) を公表する場合は、本記事で紹介した技法を使った旨クレジットをつけて公表していただくことをお願いします。
また、本ソフトウェアは現状のまま提供されるものし、作者はこれを使ったことによるいかなる損害補償等にも応じられないことを了解の上使っていただくものとします。
但し、もしソフトウェアのバグがありましたら、ご連絡いただければなるべく改善するよう努めたいと思います。
*1:更新履歴
※ 2021.1.2にプラグインをバージョンアップしました。バージョンアップ内容はこちらです。
※追記: 2020.9にプラグインをバージョンアップしました。バージョンアップ内容はこちら。ダウンロード元は変更ありません。
※追記: 2020.11にプラグインをバージョンアップしました。バージョンアップアップ内容はこちら。なお念のため旧バージョン (Ver. 2.00/1) もこちらからダウンロードできます。
※追記: 2021.1にプラグインをバージョンアップしました。今回のバージョンからは8bit用と16bit用が統合され一つのファイルとなりました。ダウンロード元サイトはこちらです。2021.1.2 現在、上のリンクからはダウンロードできるのは2020.11の旧バージョンとなっています。