0

我正在尝试使用 jython 在斐济进行一些图像处理,但遇到了麻烦。我正在尝试开发一个插件,其中图像由 boxcar 内核卷积。通过录制宏,我得到以下可以粘贴到 jython 脚本中的内容:

运行(“卷积...”,“text1 = [0.04 0.04 0.04 0.04 0.04\n0.04 0.04 0.04 0.04 0.04\n0.04 0.04 0.04 0.04 0.04\n0.04 0.04 0.04 0.04 0.04.04\n0.04 0.04.0.04.0 \n]");

其中 text1 是用于卷积的字符串。但是,问题在于插件要求用户可以定义 boxcar 内核的大小。因此,我无法将其硬编码到脚本中。有谁知道如何进行。只要最终结果是 boxcar 卷积,我对替代方法持开放态度。

非常感谢您提前

4

2 回答 2

0

中为给定的动态构造表示内核的字符串,size并将其作为参数传递给

args=split(getArgument);
kernel = args[0];
run("Convolve...", "text1=&kernel");

或者,size作为参数传递并使用宏语言本身构造字符串。

args=split(getArgument);
size = args[0];
// for loop to create kernel
run("Convolve...", "text1=&kernel");
于 2013-01-06T10:58:49.560 回答
0

多年后,但为了后代:

查看 ImageJ API,您实际上可以使用必要的参数调用 Convolver() 类。

例如:

from ij import IJ
from ij import ImagePlus
from ij.plugin.filter import Convolver

imp = IJ.openImage("http://imagej.nih.gov/ij/images/blobs.gif")
ip = imp.getProcessor()
kernel = [1.0, 2.0, 1.0, 
          0.0, 0.0, 0.0, 
          -1.0, -2.0, -1.0]

Convolver().convolve(ip, kernel, 3, 3)

out = ImagePlus("convolved", ip)
out.show()

从那里向用户询问输入内核列表应该是任意的。

于 2020-06-16T14:51:47.380 回答