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

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

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

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

NIH ImageJトップサイト

imagej.nih.govImageJ Developper Resorces トップサイト

imagej.nih.gov

ImageJ API トップサイト

imagej.nih.gov

 本日は、このAPIリファレンスの見方に関するメモです。

例えば以下に、オブジェクト、ImagePlusに関する説明があります。

 

imagej.nih.gov

トップに、class ImagePlusとありますが、クラス(class) とはオブジェクトの型 (種類) のことです。つまりImagePlus型オブジェクトに関する説明ということです。

 

 このページは大きく分けると、

・Field summary

・Constructor summary

・Method summary

・Field details

・Constructor details

・Method details

の6つのパートに分かれています。これは基本的にOracleが提供している、Java APIの構成に準じています。ImageJはJavaで開発されていますので、基本はJavaに準じているということです。

 

 フィールド(Field)とはJava特有の言葉ですが、要するにPythonにおけるデータ属性のうちのプロパティ、つまりオブジェクトの持つ変数をJavaの世界ではフィールドと言うようです。

 メソッド (Method) は、Pythonと同じでオブジェクトに付属する何らかの処理を行う関数です。

 コンストラクタ (Constructor)とは、Pythonの場合、あるクラスを定義・作成するときに初期化する関数ですが、ここでは前にも触れましたが、とりあえず自分自身と同じクラスのオブジェクトを作る機能、ぐらいに理解しておきます。

 

 各summaryに、そこで使えるデータ属性の一覧が出ており、各フィールドやメソッド等のリンクをクリックすると、それらのより詳しい説明、detailsに飛びます。

 フィールドには小文字で始まる項目と大文字で始まる項目があります。小文字で始まるものはいわばプロパティ変数名のようなものです。例えば今、impという名前を持った ImagePlus オブジェクトがあるとします。ImagePlusのフィールドには width という項目がありますので、例えば

a = imp.width

とやると、a に impの幅の具体的な値が取得できます。これらのフィールド変数は値の取得のみできます。

 一方大文字で始まるものは定数です。実際には何らかの値のエイリアス(or シノニム)、つまり分かりやすいように別名を付けているものです。フィールド定数を指定すると、いわばそのオブジェクトに値を設定することになります。これらの定数が実際にはどのような値のエイリアスなのかは、Constant Field Values の一覧に書かれています。

imagej.nih.gov

 メソッドは、何らかの処理を行う関数です。値を取得したり設定・変更したり、様々な処理が行えます。中にはフィールドと同じようなことを行う場合もあります。例えば imp.width と imp.getWidth は、同じ幅を取得する機能を持ちます。一方、setTitleは画像に名前(変数名ではなくタイトル)をつけることができます。

 また get はあるけど set がないというメソッドもあります。