0

3 つのチャネル .svs 画像からトリミングされた領域を読み取り、トリミングを .tiff 画像として保存しています。現在、画像は別々の RGB チャンネルで保存されています。

この方法で画像をトリミングします。

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);

最終的に 3 つのチャンネル画像ができあがります。

ここに画像の説明を入力

チャンネルを統合したい。

これを行うには、次の 2 つの方法が考えられます。

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 
4

1 に答える 1