gpt4 book ai didi

java - 在 ImageJ Javascript 宏中合并 RGB channel

转载 作者:行者123 更新时间:2023-12-02 04:00:38 24 4
gpt4 key购买 nike

我正在从三 channel .svs 图像读取裁剪区域,并将裁剪保存为 .tiff 图像。目前,图像使用单独的 RGB channel 保存。

我这样裁剪图像:

var path = currentFolder + "images" + File.separator + imageName; 
var options = new ImporterOptions();
options.setId(path);
options.setAutoscale(true);
options.setCrop(true);
options.setCropRegion(0, new Region(X, Y, deltaX, deltaY));
options.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE);
var croppedImage= new ImagePlus();
croppedImage= BF.openImagePlus(options);

print("cropped image class: " + croppedImage.getClass());

给出

cropped image class: class [Lij.ImagePlus;

然后我保存图像:

IJ.saveAs(cropedImage, "tif", outputFileName);

我最终得到了三个 channel 图像。

enter image description here

我想合并 channel 。

我发现了两种可能的方法:

http://javadoc.imagej.net/ImageJ1/ij/plugin/RGBStackMerge.html

http://rsb.info.nih.gov/ij/developer/api/ij/ImagePlus.html#flatten--

我尝试了croppedImage.flatten()并得到:

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: Java class "[Lij.ImagePlus;" has no public instance field or method named "flatten".

我还尝试导入 RGBStackMerge 类:

importClass(Packages.ij.plugin.RGBStackMerge);

并在做

finalImage = new ImagePlus();
finalImage = RGBStackMerge.mergeChannels(croppedImage, false);
print ("final image class: " + finalImage.getClass() + " length: " + finalImage.length);

但这给出了:

Started svs_to_cropped_tiffs.js at Fri Jan 22 22:58:10 PST 2016 javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call method "getClass" of null 

最佳答案

来自 BF class javadoc :

static ImagePlus[] openImagePlus(ImporterOptions options)

BF.openImagePlus()返回 ImagePlus数组对象(在 [L 输出中由 getClass() 指示)。您应该通过访问返回数组的第一个元素来访问您的图像:croppedImage[0]

您建议的两种方法都应该有效:

finalImage = croppedImage[0].flatten();

finalImage = RGBStackMerge.mergeChannels(croppedImage[0], false);
<小时/>

您可以在Scripting toolbox上找到如何使用生物格式打开图像的示例 ImageJ wiki 上的页面。

关于java - 在 ImageJ Javascript 宏中合并 RGB channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com