Python 在ImageJ Jython中组合通道?

Python 在ImageJ Jython中组合通道?,python,jython,imagej,Python,Jython,Imagej,我有两个来自图像堆栈的通道,我像这样分割: red_c, green_c = ChannelSplitter.split(imp) 现在我想把它们水平地结合起来: combined_img = StackCombiner.combineHorizontally(green_c, red_c) 这将抛出一个错误,该错误表示需要3个参数,但只提供了2个。但是从文档中可以看出,combineHorizontally(ImageStack stack1,ImageStack stack2) 为什么这

我有两个来自图像堆栈的通道,我像这样分割:

red_c, green_c = ChannelSplitter.split(imp)
现在我想把它们水平地结合起来:

combined_img = StackCombiner.combineHorizontally(green_c, red_c)
这将抛出一个错误,该错误表示需要3个参数,但只提供了2个。但是从文档中可以看出,
combineHorizontally(ImageStack stack1,ImageStack stack2)

为什么这不起作用


编辑:解决它。结果证明正确的写作方式是

combined = StackCombiner().combineHorizontally(grn_stack, red_stack)
为什么这需要一个额外的
()
,但ChannelSplitter没有,这对我来说是个谜。它们都是从
ij.plugin
导入的。有人能解释一下吗

解决了

很高兴你找到了。对于未来,像这样的问题仍然非常适合(您似乎也有一个问题),特别是当您询问ImageJ API的细节时

为什么这需要一个额外的()但ChannelSplitter不需要对我来说是个谜

ImageJ是一个Java应用程序,在Jython脚本中,您实际上是在调用。电话

StackCombiner.combineHorizontally(green_c, red_c)
如果
combineHorizontally
StackCombiner
static
方法,则该方法将起作用,但事实并非如此,它需要先实例化一个新的
StackCombiner
对象

Java中,您必须编写:

new StackCombiner().combineHorizontally(a,b)
Python中,您不需要
new
关键字,但仍然需要使用:


相反,它是静态的,因此您可以在不实例化对象的情况下使用它

解决了

很高兴你找到了。对于未来,像这样的问题仍然非常适合(您似乎也有一个问题),特别是当您询问ImageJ API的细节时

为什么这需要一个额外的()但ChannelSplitter不需要对我来说是个谜

ImageJ是一个Java应用程序,在Jython脚本中,您实际上是在调用。电话

StackCombiner.combineHorizontally(green_c, red_c)
如果
combineHorizontally
StackCombiner
static
方法,则该方法将起作用,但事实并非如此,它需要先实例化一个新的
StackCombiner
对象

Java中,您必须编写:

new StackCombiner().combineHorizontally(a,b)
Python中,您不需要
new
关键字,但仍然需要使用:


相反,它是静态的,因此您可以在不实例化对象的情况下使用它