私は ImageJを初めて使用し、ImageJ のプログラム API を使用してグレイン(ここで定義: http://en.wikipedia.org/wiki/Film_grain ) を画像に追加しようとしています。
- 出来ますか?もしそうなら、どのように?
- ImageJ を使用して画像にグレインを追加することに関する関連ドキュメント/Javadocs はどこにありますか?
私は ImageJを初めて使用し、ImageJ のプログラム API を使用してグレイン(ここで定義: http://en.wikipedia.org/wiki/Film_grain ) を画像に追加しようとしています。
ImageJユーザーガイド:§29.6NoiseProcess > Noise
で説明されているから始めます。要件を満たすために既存の実装を作成できるかどうかを判断する必要があります。
UIの代わりに実際のAPIを使用してこれを実現する方法に関するドキュメントを見つけることができます。
ImageJマクロ言語で説明したように、簡単な方法の1つはPlugin > Macros > Record
、目的のGUIコマンドを開始してから操作することです。これにより、マクロコマンド名と設定が表示されます。次に例を示します。
run("Add Noise");
run("Add Specified Noise...", "standard=16");
-batch
コマンドラインオプションを使用して、このようなマクロを複数のファイルに適用できます。
Javaから直接機能を使用する場合は、ImageJプログラミングチュートリアルを参照してください。
言語タグがないことがわかったので、Scala で例を書くことにしました。以下のコードは、lena.png 画像を 2 回読み取り、2 つの ImagePlus オブジェクトを作成し、そのうちの 1 つにノイズを追加します。
APIコメントは、グラフィカルユーザーインターフェース/プログラムImageJではなく、ソフトウェアライブラリImageJに関連していると推測しています。
ImagePlus には、メソッド getProcessor() で参照を取得できるプロセッサ (タイプ ij.process.ImageProcessor) があります。
(getProcessor() は、オブジェクト lenaWithNoise に作用し、現在の ImageProcessor (lenaWithNose にアタッチされている) への参照を返すメソッドです)。
メソッド Noise は ImageProcessor が処理する画像に作用し、戻り値はありません (void メソッドまたは scala 単位)。
import ij._
object Noise {
def main(args: Array[String]): Unit = {
val lenaNoiseFree:ImagePlus = IJ.openImage("src/test/scala/images/lena.png")
val lenaWithNoise:ImagePlus = IJ.openImage("src/test/scala/images/lena.png")
lenaNoiseFree.show()
lenaWithNoise.getProcessor().noise(10.0)
lenaWithNoise.show()
}
}