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

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

ImageJ / Python プログラミング Tips: imagePlus, imageProcessor の duplicate メソッド

 まだ ImageJ / Python プログラミングを始めて間もない 3年ほど前に書いた記事で imagePlus を複製するには、Duplicator を使わなければならないと書きました。単に、

imp2 = imp1

と書くだけでは、imp1 に imp2 というエイリアスができただけで、どちらをいじっても同じポインタを示すので、imp2 に行った操作が imp1 にも適用されてしまう、と指摘しました。

 このあたりは、PythonJava を使っている人には常識なのかもしれませんが、当時は両方とも初心者でしたので... (今も Java は部分的にしか理解していません)。

yasuo-ssi.hatenablog.com その時、多分何かのサンプルプログラムを見たか、あるいは、ImageJ 上で画像の複写を行いそれをマクロとして記録したものを基にコードを書いたのかは忘れましたが、Duplicator を使いました。

 しかし、最近 imagePlus や imageProcessor のレファレンスマニュアルを見たら、これらに duplicate() というメソッドがあり、それをやるとわざわざ Duplicator を使わなくても大丈夫そうであることが分かりました。

 例えば imagePlus を複写するときは...

imp2 = imp1.duplicate()

 imageProcessor なら...

ip2 = ip1.duplicate() もしくは、

ip2 = imp1.getProcessor().duplicate()

になるようです。

 

うぅーん、見逃していました。