如何在Beanshell中调用图片?ImageJ直方图匹配代码运行报错求助
ImageJ Beanshell直方图匹配代码报错解决方案
报错根因
- 你当前的报错
Encountered "( 6 th"属于语法解析错误,原因是你复制代码时意外将额外的无关字符(比如原代码旁的注释序号、排版标记)带入了代码行,导致Beanshell解析器无法识别getProcessor的调用格式。 - 另外你用到的
HistogramMatcher属于第三方Histogram2插件的类,ImageJ默认不内置,未安装该插件的话修正语法后也会触发类不存在的报错。
修正后可直接运行的代码
import ij.IJ; import histogram2.HistogramMatcher; // 获取第一张图像 imp1 = IJ.openImage("http://imagej.nih.gov/ij/images/bridge.gif"); // 获取第二张图像 imp2 = IJ.openImage("http://imagej.nih.gov/ij/images/boats.gif"); ip1 = imp1.getProcessor(); ip2 = imp2.getProcessor(); hist1 = ip1.getHistogram(); hist2 = ip2.getHistogram(); matcher = new HistogramMatcher(); newHist = matcher.matchHistograms(hist1, hist2); ip1.applyTable(newHist); imp1.setProcessor(ip1); imp1.show(); imp2.show(); // 显示两张图像的直方图 IJ.run(imp1, "Histogram", ""); IJ.run(imp2, "Histogram", "");
操作说明
- 先安装Histogram2插件:打开ImageJ→Plugins→Install,选择对应插件安装后重启ImageJ
- 清空脚本编辑器原有内容,完整复制上述代码粘贴,不要夹带其他额外字符
- 脚本语言选择Beanshell,点击运行即可完成两张图像的直方图匹配,自动弹出原图和对应直方图窗口。
内容的提问来源于stack exchange,提问作者Aidin Barabi
相关产品推荐
相关产品推荐

