斐济 Jython:Macro.getOptions() returns 错误“'Macro' 未定义”

Fiji Jython: Macro.getOptions() returns error "'Macro' is not defined"

我试图将参数从宏传递到宏中 运行 的插件,但当我尝试检索传递的字符串参数时,插件返回错误。我相信这意味着我需要导入一个 class,但我到目前为止所做的一切都没有奏效。这是代码:

from ij import IJ, ImagePlus, WindowManager, ImageStack
from ij.process import FloatProcessor, ImageProcessor, ByteProcessor
from ij.gui import ProgressBar, PointRoi
from ij.measure import ResultsTable

import ij
import ij.macro.Interpreter

import java.util.ArrayList as ArrayList

#stackOpen = IJ.openImage("/home/srammie/Pictures/Chain_Demo1/chainStack1.tif")
imageOpen = WindowManager.getCurrentImage()
imageOpenTitle = imageOpen.getTitle()
imageOpenTitle = imageOpenTitle.split("-")
amplitude = imageOpenTitle[0]
#imageOpen = IJ.openImage("/home/srammie/Pictures/chain_slap_eval1/summaryImage1.tif")
summaryImage = imageOpen.getProcessor()
print amplitude + " image being analyzed!"

dupImageOpen = imageOpen.createImagePlus()
dupSummaryImage = imageOpen.getProcessor().duplicate()
dupSummaryImageTitle = amplitude + "_resultsImage"
dupImageOpen.setProcessor(dupSummaryImageTitle, dupSummaryImage)

lowerBoundArray = ArrayList()
lowerBoundArrayRight = ArrayList()
lowerBoundArrayLeft = ArrayList()
upperBoundArray = ArrayList()
upperBoundArrayRight = ArrayList()
upperBoundArrayLeft = ArrayList()
deltaArray = ArrayList()
deltaArrayRight = ArrayList()
deltaArrayLeft = ArrayList()
largestDelta = 0
smallestDelta = 100

#print "Break"
pRoi = ArrayList()

arguments = Macro.getOptions()
arg = arguments.split(" ")
for i in range(0, len(arg)-1):
    argString = arg[i].split("=")
    pRoi.add(argString[1])

这个脚本第一次创建时对我有用,但在重新启动 Fiji 后,脚本开始返回错误

NameError:名称 'Macro' 未定义

有什么建议吗?谢谢!

编辑: 再次重启 Fiji 似乎解决了这个问题。

您没有导入宏 class。我将导入更改为:

from ij import IJ, ImagePlus, WindowManager, ImageStack, Macro
from ij.process import FloatProcessor, ImageProcessor, ByteProcessor
from ij.gui import ProgressBar, PointRoi
from ij.measure import ResultsTable
from ij.macro import Interpreter
from java.util import ArrayList