問題是你如何應對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