问题是你如何应对ImagePlus
的方式:在最后一行,您尝试创建一个new ImagePlus
,但没有机会,这个包含的任何信息,请加载的图像。
GaussianBlur
处理ImageProcessor
,您将通过ImagePlus#getProcessor()
方法获得。如果您查看API documentation,您还会看到blur(ImageProcessor,double)
已被弃用,以支持其他方法之一:您可能想在此处使用blurGaussian(ImageProcessor, double, double, double)
。
此代码将工作:
importClass(Packages.ij.plugin.filter.GaussianBlur);
var imp = IJ.openImage("http://imagej.nih.gov/ij/images/clown.jpg");
IJ.run(imp, "8-bit", "");
var ip = imp.getProcessor();
var gs = new GaussianBlur();
gs.blurGaussian(ip,20,20,0.01);
imp.show();
但是它使用与GaussianBlur
类干扰水平低的方式。为了让您的生活更轻松,您还可以在GUI中通过插件>宏>记录...然后选择记录:JavaScript通过执行高斯模糊之前进程>滤镜>高斯模糊。 。。这将使你的代码更短:
var imp = IJ.openImage("http://imagej.nih.gov/ij/images/clown.jpg");
IJ.run(imp, "8-bit", "");
IJ.run(imp, "Gaussian Blur...", "sigma=20");
imp.show();
对于在ImageJ的JavaScript脚本一般帮助,请参阅thesetwo链接到斐济维基。
编辑:从ImageJ 1.47n5开始,ImageProcessor
有一个新的方法blurGaussian(double sigma)
,缩短上述(低电平)代码:
var imp = IJ.openImage("http://imagej.nih.gov/ij/images/clown.jpg");
IJ.run(imp, "8-bit", "");
imp.getProcessor().blurGaussian(20);
imp.show();
这是关系到http://fiji.sc/Javascript_Scripting#Creating_a_script_for_ImageJ – mplungjan 2013-03-19 11:02:31