def getOptions():

    pixels = zeros('f', 4)  # 4 elements

    # First Dialog Box
    item = [
        "coralline", "tunicate", "red", "macro", "background", "more than one"
    ]
    gd = GenericDialog("Options")
    gd.addRadioButtonGroup("options", item, 3, 2, "coralline")
    gd.showDialog()
    button = gd.getNextRadioButton()

    # Second Dialog Box
    gd2 = GenericDialog("Multiple Options")
    items = ["coralline", "tunicate", "red", "macro", "garbage"]
    defaultVal = [False] * 5
    gd2.addCheckboxGroup(2, 3, items, defaultVal)
    gd2.addNumericField("coralline %", 0, 0)
    gd2.addNumericField("tunicate %", 0, 0)
    gd2.addNumericField("red %", 0, 0)
    gd2.addNumericField("macro %", 0, 0)
    gd2.addNumericField("background %", 0, 0)

    if gd.wasCanceled():
        return 0

    if button == "coralline":
        pixels[0] = 1
    elif button == "tunicate":
        pixels[1] = 1
    elif button == "red":
        pixels[2] = 1
    elif button == "macro":
        pixels[3] = 1
    elif button == "more than one":
        gd2.showDialog()
        checklist = gd2.getCheckboxes()
        pixels[0] = int(
            checklist[0].state) * (float(gd2.getNextNumber()) / 100)
        pixels[1] = int(
            checklist[1].state) * (float(gd2.getNextNumber()) / 100)
        pixels[2] = int(
            checklist[2].state) * (float(gd2.getNextNumber()) / 100)
        pixels[3] = int(
            checklist[3].state) * (float(gd2.getNextNumber()) / 100)

    return pixels
Exemple #2
0
def Options(sourceFolder):
    #globals
    global gGetNumChanFromScanImage
    global gNumChannels

    global gDoAlign
    global gAlignThisChannel

    global gDoCrop
    global gCropLeft
    global gCropTop
    global gCropWidth
    global gCropHeight

    global gAlignOnMiddleSlice
    global gAlignOnThisSlice
    global gRemoveCalibration
    global gLinearShift
    global gSave8bit

    tifNames = [file.name for file in File(sourceFolder).listFiles(Filter())]
    numTifs = len(tifNames)

    gd = GenericDialog('Align Batch 6 Options')
    #gd.addStringField('Command: ', '')

    gd.addMessage('Source Folder: ' + sourceFolder)
    gd.addMessage('Number of .tif files: ' + str(numTifs))

    #gd.setInsets(5,0,3)
    #0
    gd.addCheckboxGroup(
        1, 1, ['Get Number Of Channels From ScanImage 3.x or 4.x header'],
        [gGetNumChanFromScanImage], ['Channels'])
    gd.addNumericField(
        'Otherwise, Assume All Stacks Have This Number Of Channels: ',
        gNumChannels, 0)

    print gLinearShift

    #1
    gd.addCheckboxGroup(1, 1, ['Remove Linear Calibration From ScanImage 4.x'],
                        [gRemoveCalibration], ['ScanImage4'])
    gd.addNumericField('And offset (subtract) by this amount: ', gLinearShift,
                       0)

    #2
    gd.addCheckboxGroup(1, 1, ['Crop All Images (pixels)'], [gDoCrop],
                        ['Crop'])
    gd.addNumericField('Left', gCropLeft, 0)
    gd.addNumericField('Top', gCropTop, 0)
    gd.addNumericField('Width', gCropWidth, 0)
    gd.addNumericField('Height', gCropHeight, 0)

    #gd.setInsets(5,0,3)
    #3
    gd.addCheckboxGroup(1, 1, ['Run MultiStackReg'], [gDoAlign],
                        ['MultStackReg'])
    gd.addNumericField('If 2 Channels Then Align On This Channel',
                       gAlignThisChannel, 0)

    #4
    gd.addCheckboxGroup(1, 1, ['Start Alignment On Middle Slice'],
                        [gAlignOnMiddleSlice], ['Align On Middle Slice'])
    gd.addNumericField('Otherwise, Start Alignment On This Slice',
                       gAlignOnThisSlice, 0)

    #5
    gd.addCheckboxGroup(1, 1, ['Save 8-bit'], [gSave8bit],
                        ['Save 8-bit (at end)'])
    #gd.addCheckbox('Save 8-bit', gSave8bit)

    gd.showDialog()

    if gd.wasCanceled():
        print 'Options Was Cancelled by user'
        return 0
    else:
        print 'Reading values'
        gNumChannels = int(gd.getNextNumber())

        gLinearShift = int(gd.getNextNumber())

        gCropLeft = int(gd.getNextNumber())
        gCropTop = int(gd.getNextNumber())
        gCropWidth = int(gd.getNextNumber())
        gCropHeight = int(gd.getNextNumber())

        gAlignThisChannel = int(gd.getNextNumber())
        gAlignOnThisSlice = int(gd.getNextNumber())

        checks = gd.getCheckboxes()
        checkIdx = 0
        for check in checks:
            #print check.getState()
            if checkIdx == 0:
                gGetNumChanFromScanImage = check.getState()
            if checkIdx == 1:
                gRemoveCalibration = check.getState()
            if checkIdx == 2:
                gDoCrop = check.getState()
            if checkIdx == 3:
                gDoAlign = check.getState()
            if checkIdx == 4:
                gAlignOnMiddleSlice = check.getState()

            if checkIdx == 5:
                gSave8bit = check.getState()
            checkIdx += 1

        # print to fiji console
        bPrintLog('These are your global options:', 0)
        bPrintLog('gGetNumChanFromScanImage=' + str(gGetNumChanFromScanImage),
                  1)
        bPrintLog('gNumChannels=' + str(gNumChannels), 1)
        bPrintLog('gRemoveCalibration=' + str(gRemoveCalibration), 1)
        bPrintLog('gLinearShift=' + str(gLinearShift), 1)
        bPrintLog('gDoCrop=' + str(gDoCrop), 1)
        bPrintLog('gDoAlign=' + str(gDoAlign), 1)
        bPrintLog('gAlignThisChannel=' + str(gAlignThisChannel), 1)
        bPrintLog('gSave8bit=' + str(gSave8bit), 1)

        return 1
Exemple #3
0
                 "Within (subfolders of) input directory"]
overwriteChoices = ["NO overwrite existing files", "Overwrite existing files"]
channelSubfolderChoices = ["yes", "no"]
mipChoices = ["yes: tiff", "yes: jpg"]
overwriteList = []
startTime = time.time()
imageCount = 0
voxel_info = str()

gd = GenericDialog("Set ToTiff Options")
gd.addStringField("File extension to be processed", ".nd2")
gd.addRadioButtonGroup("Output", outDirChoices, 3, 1, outDirChoices[0])
gd.addRadioButtonGroup("Overwrite", overwriteChoices, 2, 1, overwriteChoices[0])
gd.addRadioButtonGroup("Save channels in different subfolders", channelSubfolderChoices, 1, 1,
                       channelSubfolderChoices[0])
gd.addCheckboxGroup(2, 1, mipChoices, [False, False], ["Do you want maximum intensity projections of your images?"])
gd.showDialog()
if gd.wasCanceled():
    exit()

fileExt = gd.getNextString()
outDirPref = gd.getNextRadioButton()
overwritePref = gd.getNextRadioButton()
channelSubfolderPref = gd.getNextRadioButton()
mipPrefTIFF = gd.getNextBoolean()
mipPrefJPG = gd.getNextBoolean()

if not fileExt.startswith('.'):
    fileExt = '.' + fileExt

inDir = IJ.getDirectory("Choose Directory Containing Input Files")
def Options(sourceFolder):
	#globals
	global gFileType
	global gGetNumChanFromScanImage
	global gNumChannels
		
	global gDoAlign
	global gAlignThisChannel
	
	global gDoCrop
	global gCropLeft
	global gCropTop
	global gCropWidth
	global gCropHeight
	
	global gAlignOnMiddleSlice
	global gAlignOnThisSlice
	global gRemoveCalibration
	global gLinearShift
	global gSave8bit

	tifNames = [file.name for file in File(sourceFolder).listFiles(Filter())]
	lsmNames = [file.name for file in File(sourceFolder).listFiles(Filter_LSM())]
	
	numTifs = len(tifNames)
	numLSM = len(lsmNames)

	gd = GenericDialog('Align Batch 7 Options')
	#gd.addStringField('Command: ', '')

	gd.addMessage('Source Folder: ' + sourceFolder)
	gd.addMessage('Number of .tif files: ' + str(numTifs))
	gd.addMessage('Number of .lsm files: ' + str(numLSM))
	
	gd.addChoice('File Type', ['tif','lsm'], gFileType)
	
	#gd.setInsets(5,0,3)
	#0
	gd.addCheckboxGroup(1, 1, ['Get Number Of Channels From ScanImage 3.x or 4.x header'], [gGetNumChanFromScanImage], ['Channels'])
	gd.addNumericField('Otherwise, Assume All Stacks Have This Number Of Channels: ', gNumChannels, 0)

	print gLinearShift
	
	#1
	gd.addCheckboxGroup(1, 1, ['Remove Linear Calibration From ScanImage 4.x'], [gRemoveCalibration], ['ScanImage4'])
	gd.addNumericField('And offset (subtract) by this amount: ', gLinearShift, 0)
	gd.addMessage('20151110, this number = 2^15-512 = 32768-512 = 32256')
	
	#2
	gd.addCheckboxGroup(1, 1, ['Crop All Images (pixels)'], [gDoCrop], ['Crop'])
	gd.addNumericField('Left', gCropLeft, 0)
	gd.addNumericField('Top', gCropTop, 0)
	gd.addNumericField('Width', gCropWidth, 0)
	gd.addNumericField('Height', gCropHeight, 0)

	#gd.setInsets(5,0,3)
	#3
	gd.addCheckboxGroup(1, 1, ['Run MultiStackReg'], [gDoAlign], ['MultStackReg'])
	gd.addNumericField('If 2 Channels Then Align On This Channel', gAlignThisChannel, 0)
	
	#4
	gd.addCheckboxGroup(1, 1, ['Start Alignment On Middle Slice'], [gAlignOnMiddleSlice], ['Align On Middle Slice'])
	gd.addNumericField('Otherwise, Start Alignment On This Slice', gAlignOnThisSlice, 0)

	#5
	gd.addCheckboxGroup(1, 1, ['Save 8-bit'], [gSave8bit], ['Save 8-bit (at end)'])
	#gd.addCheckbox('Save 8-bit', gSave8bit)
	
	gd.showDialog()

	if gd.wasCanceled():
		print 'Options Was Cancelled by user'
		return 0
	else:
		print 'Reading values'
		gFileType = gd.getNextChoice()
		
		gNumChannels = int(gd.getNextNumber())

		gLinearShift = int(gd.getNextNumber())

		gCropLeft = int(gd.getNextNumber())
		gCropTop = int(gd.getNextNumber())
		gCropWidth = int(gd.getNextNumber())
		gCropHeight = int(gd.getNextNumber())

		gAlignThisChannel = int(gd.getNextNumber())
		gAlignOnThisSlice = int(gd.getNextNumber())

		checks = gd.getCheckboxes()
		checkIdx = 0
		for check in checks:
			#print check.getState()
			if checkIdx==0:
				gGetNumChanFromScanImage = check.getState()
			if checkIdx==1:
				gRemoveCalibration = check.getState()
			if checkIdx==2:
				gDoCrop = check.getState()
			if checkIdx==3:
				gDoAlign = check.getState()
			if checkIdx==4:
				gAlignOnMiddleSlice = check.getState()

			if checkIdx==5:
				gSave8bit = check.getState()
			checkIdx += 1

		# print to fiji console
		bPrintLog('These are your global options:', 0)
		bPrintLog('gFileType=' + gFileType, 1)
		bPrintLog('gGetNumChanFromScanImage=' + str(gGetNumChanFromScanImage), 1)
		bPrintLog('gNumChannels=' + str(gNumChannels), 1)
		bPrintLog('gRemoveCalibration=' + str(gRemoveCalibration), 1)
		bPrintLog('gLinearShift=' + str(gLinearShift), 1)
		bPrintLog('gDoCrop=' + str(gDoCrop), 1)
		bPrintLog('gDoAlign=' + str(gDoAlign), 1)
		bPrintLog('gAlignThisChannel=' + str(gAlignThisChannel), 1)
		bPrintLog('gSave8bit=' + str(gSave8bit), 1)
		
		return 1