在斐济 (ImageJ) 我打开了两个图像(Img1 和 Img2)。我想运行一个添加两个图像并将结果存储在 Img1 中的脚本。我打算在一系列图像中执行此操作,因此我想尽量避免创建和关闭许多图像。
这可能吗?我尝试了下面的代码,但是当我Sum3and50.show()
在第一次AddSlice()
调用后调用第二个时它崩溃了。基本上我很想能够Sum3and50+=imp[Slice]
from __future__ import division
from ij import IJ
from ij import plugin
import time
def AddSlice(Stack,SumImg,Slice):
Stack.setSlice(Slice)
ic = plugin.ImageCalculator()
SliceImg = ic.run("Copy create", Stack, Stack)
SliceImg.show()
time.sleep(SLEEP_TIME)
SumImg=ic.run("Add RGB", SumImg, SliceImg)
return SumImg
SLEEP_TIME=1 #seconds
#imp = IJ.getImage()
imp = IJ.openImage("http://imagej.nih.gov/ij/images/flybrain.zip");
W,H,NCh,NSl,NFr = imp.getDimensions()
imp.show()
Sum3and50 = IJ.createImage("Sum3and50", "RGB black", W, H, 1)
Sum3and50.show()
time.sleep(SLEEP_TIME)
Sum3and50 = AddSlice(imp,Sum3and50,3)
Sum3and50.show()
time.sleep(SLEEP_TIME)
Sum3and50 = AddSlice(imp,Sum3and50,5)
Sum3and50.show()