Python ImageJ脚本:如何向现有图像添加一个图像
在斐济ImageJ中,我有两个图像打开Img1和Img2。我想运行一个脚本,添加图像并将结果存储在Img1中。我将在一系列图像中进行此操作,因此我希望尽量避免创建和关闭许多图像 这可能吗?我尝试了下面的代码,但在第一次AddSlice调用后调用第二个sum3和50.show时,它崩溃了。基本上,我希望能够计算3和50+=imp[Slice]Python ImageJ脚本:如何向现有图像添加一个图像,python,imagej,fiji,Python,Imagej,Fiji,在斐济ImageJ中,我有两个图像打开Img1和Img2。我想运行一个脚本,添加图像并将结果存储在Img1中。我将在一系列图像中进行此操作,因此我希望尽量避免创建和关闭许多图像 这可能吗?我尝试了下面的代码,但在第一次AddSlice调用后调用第二个sum3和50.show时,它崩溃了。基本上,我希望能够计算3和50+=imp[Slice] 为了避免弹出窗口,我倾向于避免使用插件,直接使用ImageProcessor。将覆盖第一个输入的两个图像的每个像素对相加的函数如下所示: def pixel
为了避免弹出窗口,我倾向于避免使用插件,直接使用ImageProcessor。将覆盖第一个输入的两个图像的每个像素对相加的函数如下所示:
def pixel_pair_sum(pro1, pro2):
for x in range(pro1.getWidth()):
for y in range(pro1.getHeight()):
v1 = pro1.get(x, y)
v2 = pro2.get(x, y)
pro1.set(x, y, v1 + v2)
pro1和pro1是图像处理器[1]。
因此,在调用上述函数之前,您需要先从ImagePlus获取这些信息:
...
sum3and50 = IJ.createImage("Sum3and50", "RGB black", W, H, 1)
p1 = sum3and50.getProcessor()
stk = imp.getStack()
p2 = stk.getProcessor(1) # get the processor for the first slice [2]
pixel_pair_sum(p1, p2) # add the pixel values of slice 1 to sum3and50
p2 = stk.getProcessor(2) # add another slice to sum3and50
pixel_pair_sum(p1, p2)
...
sum3and50.show()
供参考:
[1]
[2] 另请参见:谢谢您的回答。感谢您在没有更新的情况下参考设置位置。最后我将其用作:imp.setPositionWithoutUpdate1,slice,1p2=imp.getProcessor。唯一让我惊讶的是ImageProcessor类没有函数addImageProcessorinput@MigueladdImageProcessor p方法可能不存在,因为不同图像类型(灰色、rgb等)的模糊性,请参阅
...
sum3and50 = IJ.createImage("Sum3and50", "RGB black", W, H, 1)
p1 = sum3and50.getProcessor()
stk = imp.getStack()
p2 = stk.getProcessor(1) # get the processor for the first slice [2]
pixel_pair_sum(p1, p2) # add the pixel values of slice 1 to sum3and50
p2 = stk.getProcessor(2) # add another slice to sum3and50
pixel_pair_sum(p1, p2)
...
sum3and50.show()