在jython中为斐济卷入一个带有boxcar内核的图像

时间:2012-12-31 01:41:43

标签: plugins jython imagej

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

run(“Convolve ...”,“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 \ n0.04 0.04} 0.04 0.04 0.04 \ n]“);

其中text1是用于卷积的字符串。然而,问题在于插件要求用户可以定义boxcar内核的大小。因此,我无法将其硬编码到脚本中。有谁知道如何继续。只要最终结果是boxcar卷积,我就会接受其他方法。

非常感谢您提前

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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()

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