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

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

Python

ImageJ / Python Tips: ImageJにおけるカラー画像の画像深度の扱いについて

ImageJの画像の型はImagePlusのgetTypeメソッドで取得できます。その種類は、 現状では、GRAY8, GRAY16, GRAY32, COLOR_RGB, 及び COLOR_256です。GRAY8はグレースケール(もしくは色チャンネル単独)で8bit (0-255の値を取る)、GRAY16はグレースケール(もしく…

Imagej / Python Tips: ImageJ APIレファレンスの構成

ImageJのAPIリファレンスはアメリカ国立衛生研究所 (National Institute of Health: NIH)のサイトにあります。なお、最近当ブログで書いたようにAPIドキュメントのURLがこの3月下旬に微妙に変わっています。 NIH ImageJトップサイト imagej.nih.govImageJ De…

ImageJ / Python Tips: 8/16bit画像と、閾値設定、二値化マスク関連まとめ

今までImageJにおけるPythonプログラミングをやってきて、Threshold(閾値)設定関連で気づいたことをまとめてみます。ImageJはまだ8bit画像を前提としているところがあって、16bit (あるいはそれ以上のbit深度) 画像を扱うには注意しなければならない点が結構…

ImageJ / Python プログラミング Tips: getMaskメソッドのバグ(?)を回避する

前回修正したものを公開した、ImageJ対応 汎用色チャンネルマスク画像作成ツールのバグですが、以下のようなものでした。 二値化マスク作成の際クリップされる範囲 要は、左端と上端に、ROIが一切かからない x または y の範囲が存在すると、その部分が二値…

ImageJ / Python Tips: ImagePlus (or ImageProcessor) 画像データからLook up tableを外す

ImageJの機能に、Look up table(略称LUT)というものがあります。これは画像データの値自体を変えなくても、表示だけを変える、いわば画像表示のためのフィルター機能のようなものです。 Look up tableは基本はグレースケール画像、または単チャンネルの画像…

ImageJ / Python: 対話型ユーザインターフェースのお勉強 (ROI設定ダイアログ)

再び、MRC分子生物学研究所で公開している、ImageJの対話的ダイアログのサンプルプログラムの紹介です。今日は、ROI (注目領域、選択範囲)を対話的に設定するダイアログです(Create a UI: open a window to edit the position and dimensions of an ROI)。画…

ImageJ / Python: 対話型インターフェースのお勉強 (バックグラウンドスレッドで動かす)

今回取り上げるのは「Managing UI-launched background tasks (ユーザインターフェースから起動するバックグラウンドタスクのマネージング)」というサンプルプログラムです。このプログラムは、前回と全く同様、プレビュー画面で画像を拡大したり縮小するこ…

ImageJ API レファレンスの URLが変わっています

最近、NIH (アメリカ国立衛生研究所) のサイトにある、ImageJのAPIリファレンスのURLが微妙に変わっています。3月下旬ごろ変更されているようです。そのため、GoogleでImageJの個々のAPIを検索を掛けると 404 File not found! エラーが出てしまいます(Google…

ImageJ / Python Tips: イベントリスナー使用の陥穽

先日解説をつけた、MRC分子生物学研究所で公開している、ImageJの対話的ダイアログのサンプルプログラムを改造して、数値入力欄からパラメータ数値を得てプレビュー画像上にROI(注目範囲、選択範囲)を表示する、対話型ダイアログボックスを作ろうと思いまし…

ImageJ / Python 対話的ユーザインターフェースのお勉強

今まで、ImageJを使った自作の画像処理のプログラムを公表してきていますが、どうもユーザインターフェース周りが苦手です。自分のためだけにプログラムを書くには、自分が一番よく分かっていますので、インターフェースに神経を使う必要はありません。しか…

ImageJ / Python Tips: 上端と下端の閾値のある二値マスクをどう書くか?

ImageJのコマンドに上端と下端に閾値のある一定範囲の明度で区切られたマスクを作成する、Thresholdコマンドがあります。 メニュー→ [Image]→ [Adjust]→ [Threshold] ImageJ Thresholdコマンド実行状態 これを Pythonのスクリプトで書くにはどうしたら良いで…

ImageJ / Pyhon Tips 画像ピクセルの輝度値の取得 / 設定・書換え

ImageJでPython (Jython) を使って画像の個々のピクセルにアクセスし、そこに記されている輝度(明るさ)の値を取得したり、設定(書換え)する方法についてのメモを記しておきます。 ■ピクセルの輝度値の取得 これに必要なライブラリの呼び出しは次の通りです。…

GIMP / Python: GIMP3.0ではPythonプラグインの仕様が大幅に変わる

前回GIMP2.99.4をダウンロードをした、という話を書きました。Ver. 3.00に向けた開発バージョンです。既存のプラグインがどれぐらい動くかというのを確認しようとダウンロードしたのですが、2.10対応のプラグインは全滅です。 Python3ベースになる、というこ…

GIMP / Python Tips: ファイルが読み込まれていないときにプラグインを無効にするには... ?

GIMPにおいて Python-fu を使ってプラグインを作成する際に、プラグインをファイルが読み込まれているときのみ有効にしたい場合があります。つまり、ファイルが読み込まれていないときは薄く表示され無効にしておきたい場合です。 これはどのように実現した…

GIMP / Pyhon tips: drawableとは何か?

GIMPでプログラミングを行っていると、drawable という言葉が出てきます (例えば上の図です)。これと image オブジェクト との違いが分かりにくいのですが、GIMP Developer Resourcesに以下のように説明されています。 A GIMP image is a structure that con…

フリーのGIMP用褪色ポジフィルム復元プラグインを発見

以前、赤色化した褪色ポジフィルムはどの程度復元可能かというのをVuescanや、スキャナドライバ付属のDigital ROCを使ってお見せしたことがあります。ただ、これらはいずれも有料のツールです(スキャナドライバはスキャナを買えば付属しますが...)。しかも現…

ImageJ / Python: Jython でunicode 文字列を printすると...

これも個人的備忘録です。 ImageJ上でJythonを使ってunicode文字列(このケースは日本語を含むファイル名)をprintで出力しようとすると... ログコンソールがUnicode文字に対応していないので次のような表記になります。 文字列の頭に「u'」が付きますが、これ…

ImageJ / Python Tips: ImageCalculatorの使用

ImageJのImageCalculatorは、2つの画像の間で演算を行う機能です。この機能も、当然ながらマクロで記録することができ、そのマクロを再生して動かすことが可能ですが、Python (Jython) を使って IJ.runでそのマクロを書き換えるとうまく動きません。おそらく…

GIMP / Python 自作プラグイン (ファイルをレイヤーとして読込) 解説

GIMPにおいて Python-fu を使ったプログラミングを行う場合、特にWindows環境ではデバッグが難しく結構大変です。下手をするとどこが間違っているのかさっぱり分からない場合もしばしばです。私自身もGIMP初歩プログラマですが、それでも私自身の経験も記し…

ImageJ / Python Tips: ChannelSplitterの使用に注意!

前回同様にプラグイン・サイレントバージョン作成過程で気づいたTipsです。 オリジナルのプラグインでは、次のマクロコマンドでウィンドウで開いたRGB画像を3チャンネルに分割していました。 IJ.run("Split Channels") →アクティブウィンドウの画像を3Ch.の…

GIMP / Python 開発用レファレンスマニュアルリンク

GIMP開発用のレファレンスマニュアル等のリンクです。自分用にメモです。 developer.gimp.org GIMP API のレファレンスマニュアル developer.gimp.org GIMP Library リファレンスマニュアル (Ver. 2.8.7以降用) 但し、Pythonから呼び出せないAPIも含まれる d…

ImageJ / Python プログラミングの盲点: 画像二値化の際の出力値に注意!

またまた、プログラムをいじっていてハマった点です。 ImageJのスクリプトで画像データをもとに白と黒の二値画像のマスクを作るプロセスがあります。具体的には次のような画像です。 二値化画像 上の画像から下の二値化画像を得るために、当初記録したマクロ…

ImageJ / Pythonプログラミングの盲点: 画像の代入

現在ここのサイトで公開しているImageJ用プラグインスクリプトは、基本的にImageJでマニュアル操作を行ってマクロを記録し、それをPython (Jython)で書き換え、さらに、ファイル選択などのダイアログなどを書き加えて作成しています。 ただ、この方式だと常…

Python (Jython) を使ったImageJ用プログラミングの参考サイト

Python (Jython) を使ってImageJ用のプログラミングを始めるために参考になるサイトのリンクです。なお、Jythonは、Python2.7ベースです。

ImageJ+Pythonで汎用ダイアログボックスを利用する

以下に、ImageJにおいて、Jython (Python)を使って汎用の入力ダイアログボックスを使う方法について書かれたブログがありました。