Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImageJ脚本:如何向现有图像添加一个图像_Python_Imagej_Fiji - Fatal编程技术网

Python ImageJ脚本:如何向现有图像添加一个图像

Python ImageJ脚本:如何向现有图像添加一个图像,python,imagej,fiji,Python,Imagej,Fiji,在斐济ImageJ中,我有两个图像打开Img1和Img2。我想运行一个脚本,添加图像并将结果存储在Img1中。我将在一系列图像中进行此操作,因此我希望尽量避免创建和关闭许多图像 这可能吗?我尝试了下面的代码,但在第一次AddSlice调用后调用第二个sum3和50.show时,它崩溃了。基本上,我希望能够计算3和50+=imp[Slice] 为了避免弹出窗口,我倾向于避免使用插件,直接使用ImageProcessor。将覆盖第一个输入的两个图像的每个像素对相加的函数如下所示: def pixel

在斐济ImageJ中,我有两个图像打开Img1和Img2。我想运行一个脚本,添加图像并将结果存储在Img1中。我将在一系列图像中进行此操作,因此我希望尽量避免创建和关闭许多图像

这可能吗?我尝试了下面的代码,但在第一次AddSlice调用后调用第二个sum3和50.show时,它崩溃了。基本上,我希望能够计算3和50+=imp[Slice]


为了避免弹出窗口,我倾向于避免使用插件,直接使用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()