我是ImageJ的新手,我正在寻求使用ImageJ的编程API将添加纹理(如此处定义:http://en.wikipedia.org/wiki/Film_grain)添加到图像中。
答案 0 :(得分:2)
我从Process > Noise
开始,在ImageJ User Guide: §29.6 Noise中描述。您必须决定是否可以实现现有的实施以满足您的要求。
我可以在哪里找到有关如何使用实际API而不是UI 实现此目的的文档。
如ImageJ Macro Language中所述,一种简单的方法是启动Plugin > Macros > Record
,然后运行所需的GUI命令。这将显示宏命令名称和任何设置,例如:
run("Add Noise");
run("Add Specified Noise...", "standard=16");
您可以使用-batch
命令行选项将此类宏应用于多个文件。
如果您想直接使用Java中的功能,请参阅ImageJ programming tutorials。
答案 1 :(得分:0)
我看到没有语言标签,所以我选择在Scala中编写一个示例。下面的代码将读取lena.png图像的两倍,并创建两个ImagePlus对象并向其中一个添加噪声。
我有点猜测API评论与软件库ImageJ有关,而不是图形用户界面/程序ImageJ。
ImagePlus有一个处理器(类型为ij.process.ImageProcessor),您可以使用方法getProcessor()
获取对它的引用(getProcessor()是一个方法,它作用于对象lenaWithNoise并返回对当前ImageProcessor的引用(附加到lenaWithNose))。
方法噪声作用于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()
}
}