我是 ImageJ 的新手,我正在寻求使用 ImageJ 的编程 API 向图像添加颗粒(定义如下:http ://en.wikipedia.org/wiki/Film_grain)。
- 是否可以?如果有怎么办?
- 关于使用 ImageJ 向图像添加颗粒的相关文档/Javadocs 在哪里?
我是 ImageJ 的新手,我正在寻求使用 ImageJ 的编程 API 向图像添加颗粒(定义如下:http ://en.wikipedia.org/wiki/Film_grain)。
我会从ImageJ 用户指南:§29.6 NoiseProcess > Noise
中描述的开始。您必须决定现有的实现是否可以满足您的要求。
我可以在哪里找到有关如何使用实际 API 而不是 UI 来实现此目的的文档。
正如ImageJ 宏语言中所讨论的,一种简单的方法是启动Plugin > Macros > Record
然后操作所需的 GUI 命令。这将显示宏命令名称和任何设置,例如:
run("Add Noise");
run("Add Specified Noise...", "standard=16");
您可以使用-batch
命令行选项将此类宏应用于多个文件。
如果您想直接使用 Java 中的功能,请参阅ImageJ 编程教程。
我看到没有语言标签,所以我选择用 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()
}
}