1

我是 ImageJ 的新手,我正在寻求使用 ImageJ 的编程 API 向图像添加颗粒(定义如下:http ://en.wikipedia.org/wiki/Film_grain)。

  • 是否可以?如果有怎么办?
  • 关于使用 ImageJ 向图像添加颗粒的相关文档/Javadocs 在哪里?
4

2 回答 2

2

我会从ImageJ 用户指南:§29.6 NoiseProcess > Noise中描述的开始。您必须决定现有的实现是否可以满足您的要求。

我可以在哪里找到有关如何使用实际 API 而不是 UI 来实现此目的的文档

正如ImageJ 宏语言中所讨论的,一种简单的方法是启动Plugin > Macros > Record然后操作所需的 GUI 命令。这将显示宏命令名称和任何设置,例如:

run("Add Noise");
run("Add Specified Noise...", "standard=16");

您可以使用-batch命令行选项将此类宏应用于多个文件。

如果您想直接使用 Java 中的功能,请参阅ImageJ 编程教程

于 2012-09-25T20:30:50.153 回答
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()
 }
} 
于 2016-02-29T19:28:10.650 回答