Nick M
Nick M

Reputation: 3

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

I'm trying to pass arguments from a macro to a plugin being run in the macro, but the plugin is returning an error when I try to retrieve the string argument being passed. I believe this means I need to import a class, but everything I've tried to far hasn't worked. Here's the code:

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])

This script was working for me the first time it was created, but after restarting Fiji, the script started returning the error

NameError: name 'Macro' is not defined.

Any suggestions? Thanks!

Edit: Restarting Fiji again seems to have made this problem go away.

Upvotes: 0

Views: 392

Answers (1)

Marcel
Marcel

Reputation: 522

You did not import the Macro class. I changed the imports to:

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

Upvotes: 1

Related Questions