Пример #1
0
def run():
    gd = GenericDialogPlus("ND2 Conversion Tool")
    gd.addMessage("This plugin uses BioFormats to convert ND2 images to JPEG for further processing in ImageJ.")
    gd.addDirectoryOrFileField("Input: ", "G:\\Subdir testing\\") #srcDir
    gd.addDirectoryOrFileField("Output: ", "G:\\Subdir testing\\") #dstDir
    gd.addStringField("File name contains: ", "") #nameContains
    gd.addCheckbox("Preserve directory structure?", True) #keepDirs
    gd.addCheckbox("Run in headless mode?", True) #anneBoleyn 
    gd.addCheckbox("Overwrite existing output files?", True)
    gd.showDialog()
    if gd.wasCanceled():
        return
    srcDir = gd.getNextString()
    dstDir = gd.getNextString()
    nameContains = gd.getNextString()
    keepDirectories = gd.getNextBoolean()
    anneBoleyn = gd.getNextBoolean()
    overOut = gd.getNextBoolean()
    IJ.run("Input/Output...", "jpeg=100")
    for root, directories, filenames in os.walk(srcDir):
        for filename in filenames:
            # Check for file extension
            if not filename.endswith(".nd2"):
                continue
            # Check for file name pattern
            if nameContains not in filename:
                continue
            process(srcDir, dstDir, nameContains, root, filename, keepDirectories, anneBoleyn, overOut)
def optionsDialog():
    dialog = GenericDialogPlus("Automated Weka Percentages")
    dialog.addDirectoryField("Image Directory", "")
    dialog.addFileField("Training Model", "")
    dialog.addStringField("Output Subdirectory", "output", 20)
    dialog.addStringField("Probability Threshold", "0.75", 20)
    dialog.showDialog()

    # Check if canceled
    if dialog.wasCanceled(): return None

    textVals = [x.text for x in dialog.getStringFields()]
    #boolVals = [x.getState() for x in dialog.getCheckboxes()]

    return textVals
Пример #3
0
def optionsDialog():
    dialog = GenericDialogPlus("Fluorescent Cell Counting")
    dialog.addDirectoryField("Image Directory", "")
    dialog.addFileField("Training Model", "")
    dialog.addStringField("Output Subdirectory", "output", 20)
    dialog.addStringField("Probability Threshold", "0.67", 20)
    dialog.addStringField("Minimum Pixel Size", "2", 20)
    dialog.showDialog()

    # Check if canceled
    if dialog.wasCanceled(): return None

    textVals = [x.text for x in dialog.getStringFields()]

    return textVals
Пример #4
0
def get_parameters(p):
  gd = GenericDialogPlus("Please enter parameters")

  for k in p['expose_to_gui']['value']:
    if p[k]['type'] == 'boolean':
      gd.addCheckbox(k, p[k]['value'])
    elif p[k]['type'] == 'folder':
      gd.addDirectoryField(k, p[k]['value'], 100)	
    elif p[k]['type'] == 'file':
      gd.addFileField(k, p[k]['value'], 100)	
    elif p[k]['type'] == 'string':
      if p[k]['choices']:
        gd.addChoice(k, p[k]['choices'], p[k]['value'])	
      else:
        gd.addStringField(k, p[k]['value'])	 
    elif p[k]['type'] == 'int':
      if p[k]['choices']:
        gd.addChoice(k, p[k]['choices'], p[k]['value'])	
      else:
        gd.addNumericField(k, p[k]['value'], 0)	 
    elif p[k]['type'] == 'float':
      gd.addNumericField(k, p[k]['value'], 2)
  
  gd.showDialog()
  if gd.wasCanceled():
    return

  for k in p['expose_to_gui']['value']:
    if p[k]['type'] == 'boolean':
      p[k]['value'] = gd.getNextBoolean()
    elif p[k]['type'] == 'folder' or p[k]['type'] == 'file':
      p[k]['value'] = gd.getNextString()
    elif p[k]['type'] == 'string':
      if p[k]['choices']:
        p[k]['value'] = gd.getNextChoice()	
      else:
        p[k]['value'] = gd.getNextString()	 
    elif p[k]['type'] == 'int':
      if p[k]['choices']:
        p[k]['value'] = int(gd.getNextChoice())	
      else:
        p[k]['value'] = int(gd.getNextNumber()) 
    elif p[k]['type'] == 'float':
        p[k]['value'] = gd.getNextNumber()
    
  return p
Пример #5
0
    def getSettings(self):
        gd = GenericDialogPlus("Settings")
        gd.addNumericField("Distance in pixel", 600, 0)
        gd.addNumericField("Distance in cm", 2.54, 2)
        gd.addNumericField("Min. size (cm^2)", 0.5, 2)
        gd.addDirectoryField("Directory", IJ.getDirectory("home"))
        gd.addStringField("File extension", "*.jpg", 8)
        gd.showDialog()

        if gd.wasCanceled():
            sys.exit()
        else:
            distPixel = gd.getNextNumber()
            distCm = gd.getNextNumber()
            minSize = gd.getNextNumber() * (distPixel / distCm) ** 2
            imageDir = gd.getNextString()
            ext = gd.getNextString()

        return (distPixel, distCm, minSize, imageDir, ext)
def get_parameters(p):
  gd = GenericDialogPlus("Please enter parameters")

  for k in p['expose_to_gui']['value']:
    if p[k]['type'] == 'folder':
      gd.addDirectoryField(k, p[k]['value'], 100)	
    if p[k]['type'] == 'file':
      gd.addFileField(k, p[k]['value'], 100)	
    elif p[k]['type'] == 'string':
      if p[k]['choices']:
        gd.addChoice(k, p[k]['choices'], p[k]['value'])	
      else:
        gd.addStringField(k, p[k]['value'], 50)	 
    elif p[k]['type'] == 'int':
      if p[k]['choices']:
        gd.addChoice(k, p[k]['choices'], p[k]['value'])	
      else:
        gd.addNumericField(k, p[k]['value'], 0)	 
    elif p[k]['type'] == 'float':
      gd.addNumericField(k, p[k]['value'], 2)
  
  gd.showDialog()
  if gd.wasCanceled():
    return(0)

  for k in p['expose_to_gui']['value']:
    if p[k]['type'] == 'folder' or p[k]['type'] == 'file':
      p[k]['value'] = gd.getNextString()
    elif p[k]['type'] == 'string':
      if p[k]['choices']:
        p[k]['value'] = gd.getNextChoice()	
      else:
        p[k]['value'] = gd.getNextString()	 
    elif p[k]['type'] == 'int':
      if p[k]['choices']:
        p[k]['value'] = int(gd.getNextChoice())	
      else:
        p[k]['value'] = int(gd.getNextNumber()) 
    elif p[k]['type'] == 'float':
        p[k]['value'] = gd.getNextNumber()
    
  return(p)
def selectionDialog(categories,labelColorBarImp):
	gd = GenericDialogPlus("ROI labeller -image picking")
	imps = WM.getImageTitles()
	nonimages=WM.getNonImageTitles()
	
	gd.addChoice("Image to quantify", imps, imps[0])
	try:
		gd.addChoice("FRETENTATOR results table", nonimages, nonimages[0])
		fail=0
	except:
		gd.addMessage("No results table open")
		fail=1
	gd.addImage(labelColorBarImp)
	for i in range(categories):
		gd.addStringField("Label "+str(i) +" name:", "Label "+str(i))

	gd.addChoice("Quantify an open image or add labels to open results table?", ["Image", "Results table"], "Results table")
	
	#quantImp= IJ.getImage(gd.getNextChoice())
	
	
	gd.setModal(False)
	gd.showDialog()
	while ((not gd.wasCanceled()) and not (gd.wasOKed())):
		Thread.sleep(50)


	names=dict()
	
	for i in range(categories):
		names[i]=str(gd.getNextString())
	imageName=gd.getNextChoice()
	if fail==0:	
		resultsName=gd.getNextChoice()
		imageOrTable=gd.getNextChoice()
	else:
		imageOrTable="Image"
		resultsName=0
	return names, imageName, resultsName, imageOrTable
Пример #8
0
def optionsDialog():
    dialog = GenericDialogPlus("Cilia Sizes")
    dialog.addDirectoryField("Image Directory", DEFAULT_DIR)
    dialog.addFileField("Training Model", DEFAULT_TRAIN)
    dialog.addStringField("Output Subdirectory", "output", 20)
    dialog.addStringField("Confocal Channel", "1", 20)
    dialog.addStringField("Probability Threshold", "0.67", 20)
    dialog.addStringField("Minimum Pixel Size", "2", 20)
    dialog.showDialog()

    # Check if canceled
    if dialog.wasCanceled(): return None

    textVals = [x.text for x in dialog.getStringFields()]

    return textVals
Пример #9
0
from ij.gui import GenericDialog
from fiji.util.gui import GenericDialogPlus
import os, shutil

gdp = GenericDialogPlus("File Mover")
file_type = gdp.getNextString()
gdp.addStringField("File Extension ", '.tif', 5)
x = gdp.addDirectoryField("Source: ", " ")
gdp.addDirectoryField("Destination: ", " ")
gdp.showDialog()
if gdp.wasOKed():
    file_type = gdp.getNextString().strip()
    source_path = gdp.getNextString()
    dest_path = gdp.getNextString()
    print(file_type)
    print("source " + source_path)
    print("dest " + dest_path)
else:
    exit()

moved = 'Moved Images'
path = os.path.join(dest_path, moved)
try:
    dest = os.mkdir(path)
except OSError as error:
    print("Error: Moved Images is already present")
    exit()


def move():
    for root, dirs, files in os.walk((os.path.normpath(source_path)),
Пример #10
0
def optionsDialog():
	dialog = GenericDialogPlus("Automated Size Analysis")
	dialog.addDirectoryField("Image Directory", "")
	dialog.addStringField("Output Subdirectory", "output", 20)
	dialog.addStringField("Minimum Pixel Size", "50000", 20)
	dialog.addStringField("Minimum Roundness", "0.4", 20)
	dialog.addStringField("Gaussian Blur", "6", 20)
	dialog.addStringField("Rotation Steps", "3", 20)
        dialog.addStringField("Thresholds", ",".join(THRESHOLDS), 20)
	dialog.addCheckbox("Rotate Images", True)
	dialog.addCheckbox("Multiple Thresholds", True)
	dialog.showDialog()

	# Check if canceled
	if dialog.wasCanceled(): return None

	textVals = [x.text for x in dialog.getStringFields()]
	boolVals = [x.getState() for x in dialog.getCheckboxes()]

	return textVals + boolVals
Пример #11
0
import csv
from fiji.util.gui import GenericDialogPlus
from loci.formats import ChannelSeparator
from ij.io import Opener
import json
import time

boldFont = Font("SansSerif", Font.BOLD, 13)
fret_fura = []
fret_fura.append("C1/C2 (FURA)")
fret_fura.append("C2/C1 (FRET)")
dest = IJ.getDirectory("image")
bck_path = 'optional'
gdp = GenericDialogPlus("FRET Assay, Version 3.4")
gdp.addDirectoryField("Output Location:", dest, 40)
gdp.addStringField("Processed Folder:", 'Processed_FRET', 40)
gdp.addStringField("FRET Outfile:", 'FRET_Outfile.csv', 40)
gdp.addStringField("Selection Radius:", '3', 10)
gdp.addStringField("Image interval (sec):", '4', 10)
gdp.addStringField("ZeroDivisionErorVal:", 'NA', 10)
gdp.addRadioButtonGroup("", fret_fura, 1, 2, "C1/C2 (FURA)")
#gdp.addCheckbox("Set Background to value:", False)
gdp.addFileField("background file:", bck_path, 40)
gdp.addToSameRow()
gdp.addStringField("", '0', 5)

gdp.addCheckbox("Apply Gaussian blur? Input sigma value:", False)
gdp.addToSameRow()
gdp.addStringField("", '4', 5)
gdp.addMessage(" ")
gdp.addMessage("Set R0 range (timepoint position x1 to x2):", boldFont)
Пример #12
0
preGd.showDialog()
outputFolder = preGd.getNextString()
os.chdir(outputFolder)
folderPath, formatString, groupBy, nucChannel, cmChannel, stitched, analyzeNucStack, brightfield, nucMethod, cmMethod, analyzeCmStack, rowNo, colNo, nucMinSize, cmMinSize =\
"",          "",          "",      "DAPI",      "GFP",    False,    True,            False,      "Otsu",    "Triangle", True,         8,     7,      50,        500
__dict__ = globals()
try:
	with open("savedSettings.json") as f:
	  thing = json.load(f)
	  for k, v in thing.iteritems():
	    __dict__[k] = v
	print(thing)
except Exception as e: print(e)
gd = GenericDialog("Analysis parameters")
gd.addDirectoryField("Image folder location", folderPath )
gd.addStringField("Image filename pattern", formatString, 70)
gd.addStringField("Group By", groupBy, 70)
gd.addStringField("Nuclear Stain Channel Name", nucChannel, 70)
gd.addStringField("Cardiomyocyte Image Channel Name", cmChannel, 70)
gd.addCheckbox("Are images stitched by well", stitched)
gd.addChoice("Nuclear thresholding method", methodsList, nucMethod)
gd.addCheckbox("Threshold nuclei by stack?", analyzeNucStack)
gd.addCheckbox("Are the cardiomyocyte images brightfield?", brightfield)
gd.addChoice("Cardiomyocyte thresholding method", methodsList,  cmMethod)
gd.addCheckbox("Threshold cardiomyocyes by stack?", analyzeCmStack)
gd.addNumericField("Rows per well", rowNo, 0)
gd.addNumericField("Columns per well", colNo, 0)
gd.addNumericField("Nuclear minimum size (pixels)", nucMinSize, 0)
gd.addNumericField("Cardiomyocyte minimum size (pixels)", cmMinSize, 0)
gd.showDialog()
folderPath = gd.getNextString() + "/"
Пример #13
0
def getOptions():
	gui = GenericDialogPlus("Options for Moving TIFF files")
	gui.addMessage("Select the number of imput files to be used per stitched image")
	gui.addSlider("", 2, 10, 2)
	gui.addFileField("Select csv file", "")
	gui.addMessage("Add key values and corresponding genotype, when finished, leave fields empty")
	gui.addStringField("Key :", prefs.get(None, "key1", "p"))
	gui.addToSameRow()
	gui.addStringField("Genotype :", prefs.get(None, "genotype1", "PROM-1_HA"))
	gui.addStringField("Key :", prefs.get(None, "key2", "p"))
	gui.addToSameRow()
	gui.addStringField("Genotype :", prefs.get(None, "genotype2", "PROM-1_HA"))
	gui.addStringField("Key :", prefs.get(None, "key3", "p"))
	gui.addToSameRow()
	gui.addStringField("Genotype :", prefs.get(None, "genotype3", "PROM-1_HA"))
	gui.addStringField("Key :", prefs.get(None, "key4", "p"))
	gui.addToSameRow()
	gui.addStringField("Genotype :", prefs.get(None, "genotype4", "PROM-1_HA"))
	gui.addStringField("Key :", prefs.get(None, "key5", "p"))
	gui.addToSameRow()
	gui.addStringField("Genotype :", prefs.get(None, "genotype5", "PROM-1_HA"))
	gui.showDialog() 

	if gui.wasOKed():
		tiffs_per_image = int(gui.getNextNumber())
		csv_file = str(gui.getNextString())
		genotypes = {}
		for i in range(5):
			key = str(gui.getNextString())
			value = str(gui.getNextString())
			if key != "":
				genotypes[key] = value
	else:
		return
	if len(genotypes) > 0:
		a = list(genotypes.items())[0]
		prefs.put(None, "key1", a[0])
		prefs.put(None, "genotype1", a[1])
	if len(genotypes) > 1:
		a = list(genotypes.items())[1]
		prefs.put(None, "key2", a[0])
		prefs.put(None, "genotype2", a[1])
	if len(genotypes) > 2:
		a = list(genotypes.items())[2]
		prefs.put(None, "key3", a[0])
		prefs.put(None, "genotype3", a[1])
	if len(genotypes) > 3:
		a = list(genotypes.items())[3]
		prefs.put(None, "key4", a[0])
		prefs.put(None, "genotype4", a[1])
	if len(genotypes) > 4:
		a = list(genotypes.items())[4]
		prefs.put(None, "key5", a[0])
		prefs.put(None, "genotype5", a[1])
	return tiffs_per_image, csv_file, genotypes
    # Dumps values into a dictionary
    json_object = json.dumps(default_values, indent=4)
    dest = IJ.getDirectory("image")
    os.chdir(dest)
    json_selected = os.path.join(dest, json_selected)
    json_selected = json_selected+'/'
    # Writing to sample.json
    with open(json_selected, "w") as outfile:
        outfile.write(json_object)


# sets up a generic dialog box to start the script.
dest = IJ.getDirectory("image")
gdp = GenericDialogPlus("Transport Assay - "+version)
gdp.addDirectoryField("Image Folder:", dest, 40)
gdp.addStringField("Processed Image Folder:", ProFolder_def, 40)
gdp.addStringField("Transport Output:", Quant_def, 40)
gdp.addStringField("Mean_Max Output:", Quant_MM_def, 40)
gdp.addMessage("------------------------------------------------------------", italicFont)
gdp.addChoice("Transport Channel:", channels_available, tran_def)
gdp.addToSameRow()
gdp.addStringField("File Type: ", file_def, 5)
gdp.addChoice("  Golgi Channel:", channels_available, golgi_def)
gdp.addToSameRow()
gdp.addStringField("Processed File Extension: ", ext_def, 5)
gdp.addMessage("    ", italicFont)
gdp.addToSameRow()
gdp.addMessage("    ", italicFont)
gdp.addChoice(" Zoom: ", zoom, zoom_def)
gdp.addToSameRow()
gdp.addStringField("ER Selection Radius: ", radius_def, 5)
gd.setInsets(25,100,10)
gd.addMessage("Advanced Options:",font)
advancedoptionsf=gd.getMessage()

ncores=Runtime.getRuntime().availableProcessors()
defaultCores=1
if ncores >=8:
    defaultCores=4
elif ncores>=4:
    defaultCores=2
gd.addSlider("Number of cpu cores to use",1,ncores,defaultCores)

gd.setInsets(0,230,10)
gd.addCheckbox("Verbose log messages",False)

gd.addStringField("Output folder suffix","",20)
outsuffixf = gd.getStringFields().get(3)

gd.addStringField("(Further) Registration Params","",50);
regparamf = gd.getStringFields().get(4)
gd.addStringField("Additional Arguments to munger.pl","",50);

regrootf.addTextListener(RegRootListener())
imgdirf.addTextListener(ImageDirListener())
outsuffixf.addTextListener(OuputSuffixListener())
choicef.addItemListener(RegParamListener())
# used for errors etc
gd.addMessage("Start by choosing a registration directory or images directory!")
statusf=gd.getMessage()
gd.showDialog()
if gd.wasCanceled():
Пример #16
0
The search region can be limited to a rectangular ROI, that is drawn on the image/stack before execution of the plugin.

Requirements:
- IJ-OpenCV update site
'''
#import time
#@PrefService prefs
from fiji.util.gui import GenericDialogPlus

## Create GUI
Win = GenericDialogPlus("Multiple Template Matching")
Win.addImageChoice("Template", prefs.get("Template", "Choice"))
Win.addImageChoice("Image", prefs.get("Image", "Choice"))
Win.addCheckbox("Flip_template_vertically", prefs.getInt("FlipV", False))
Win.addCheckbox("Flip_template_horizontally", prefs.getInt("FlipH", False))
Win.addStringField("Rotate template by ..(comma-separated)",
                   prefs.get("Angles", ""))
Win.addChoice("Matching_method", [
    "Normalised Square Difference", "Normalised cross-correlation",
    "Normalised 0-mean cross-correlation"
], prefs.get("Method", "Normalised 0-mean cross-correlation"))
Win.addNumericField("Number_of_templates expected", prefs.getInt("N_hit", 1),
                    0)
Win.addMessage("If more than 1 template expected :")
Win.addNumericField("Score_Threshold [0-1]",
                    prefs.getFloat("Score_Threshold", 0.5), 2)
#Win.addNumericField("Min_peak_height relative to neighborhood ([0-1], decrease to get more hits)", prefs.getFloat("Tolerance",0.1), 2)
Win.addNumericField("Maximal_overlap between Bounding boxes [0-1]",
                    prefs.getFloat("MaxOverlap", 0.4), 2)
Win.addMessage("Outputs")
Win.addCheckbox("Add_ROI detected to ROI manager",
                prefs.getInt("AddRoi", True))
Пример #17
0
    gd.setInsets(25, 100, 10)
    gd.addMessage("Advanced Options:", font)
    advancedoptionsf = gd.getMessage()

    ncores = Runtime.getRuntime().availableProcessors()
    defaultCores = 1
    if ncores >= 8:
        defaultCores = 4
    elif ncores >= 4:
        defaultCores = 2
    gd.addSlider("Number of cpu cores to use", 1, ncores, defaultCores)

    gd.setInsets(0, 230, 10)
    gd.addCheckbox("Verbose log messages", False)

    gd.addStringField("Output folder suffix", "", 20)
    outsuffixf = gd.getStringFields().get(3)

    gd.addStringField("(Further) Registration Params", "", 50)
    regparamf = gd.getStringFields().get(4)
    gd.addStringField("Additional Arguments to munger.pl", "", 50)

    regrootf.addTextListener(RegRootListener())
    imgdirf.addTextListener(ImageDirListener())
    outsuffixf.addTextListener(OuputSuffixListener())
    choicef.addItemListener(RegParamListener())
    # used for errors etc
    gd.addMessage(
        "Start by choosing a registration directory or images directory!")
    statusf = gd.getMessage()
    gd.showDialog()