def setReaderOptions(imagefile, stitchtiles=False, setflatres=True, setconcat=False, openallseries=False, showomexml=False, attach=False, autoscale=True): czi_options = DynamicMetadataOptions() czi_options.setBoolean("zeissczi.autostitch", stitchtiles) czi_options.setBoolean("zeissczi.attachments", attach) # set the option for the CZIReader czireader = ImportTools.setCZIReaderOptions(imagefile, czi_options, setflatres=setflatres) # Set the preferences in the ImageJ plugin # Note although these preferences are applied, they are not refreshed in the UI Prefs.set("bioformats.zeissczi.allow.autostitch", str(stitchtiles).lower()) Prefs.set("bioformats.zeissczi.include.attachments", str(attach).lower()) # set the option for the BioFormats import reader_options = ImporterOptions() reader_options.setOpenAllSeries(openallseries) reader_options.setShowOMEXML(showomexml) reader_options.setConcatenate(setconcat) reader_options.setAutoscale(autoscale) reader_options.setStitchTiles(stitchtiles) reader_options.setId(imagefile) return reader_options, czireader
def run(imagefile, useBF=True, series=0, filtertype='MEDIAN', filterradius='5'): #log.log(LogLevel.INFO, 'Image Filename : ' + imagefile) log.info('Image Filename : ' + imagefile) # get basic image metainfo metainfo = get_metadata(imagefile, imageID=series) for k, v in metainfo.items(): #log.log(LogLevel.INFO, str(k) + ' : ' + str(v)) log.info(str(k) + ' : ' + str(v)) if not useBF: # using IJ static method imp = IJ.openImage(imagefile) if useBF: # initialize the importer options for BioFormats options = ImporterOptions() options.setOpenAllSeries(True) options.setShowOMEXML(False) options.setConcatenate(True) options.setAutoscale(True) options.setId(imagefile) options.setStitchTiles(True) # open the ImgPlus imps = BF.openImagePlus(options) imp = imps[series] # apply the filter if filtertype != 'NONE': # apply filter #log.log(LogLevel.INFO, 'Apply Filter : ' + filtertype) #log.log(LogLevel.INFO, 'Filter Radius : ' + str(filterradius)) log.info('Apply Filter : ' + filtertype) log.info('Filter Radius : ' + str(filterradius)) # apply the filter based on the chosen type imp = apply_filter(imp, radius=filterradius, filtertype=filtertype) if filtertype == 'NONE': #log.log(LogLevel.INFO, 'No filter selected. Do nothing.') log.info('No filter selected. Do nothing.') return imp
def open_czi_series(file_name, series_number, rect=False): # see https://downloads.openmicroscopy.org/bio-formats/5.5.1/api/loci/plugins/in/ImporterOptions.html options = ImporterOptions() options.setId(file_name) options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) # select image to open options.setOpenAllSeries(False) options.setAutoscale(False) options.setSeriesOn(series_number, True) # default is not to crop options.setCrop(False) if rect: # crop if asked for options.setCrop(True) options.setCropRegion(series_number, Region(rect[0], rect[1], rect[2], rect[3])) imps = BF.openImagePlus(options) return imps[0]
def readbf(imagefile, metainfo, setflatres=False, readpylevel=0, setconcat=False, openallseries=True, showomexml=False, autoscale=True, stitchtiles=True): # initialize the importer options options = ImporterOptions() options.setOpenAllSeries(openallseries) options.setShowOMEXML(showomexml) options.setConcatenate(setconcat) options.setAutoscale(autoscale) options.setId(imagefile) options.setStitchTiles(stitchtiles) # in case of concat=True all series set number of series = 1 # and set pyramidlevel = 0 (1st level) since there will be only one # unless setflatres = True --> read pyramid levels series = metainfo['SeriesCount_BF'] if setconcat and setflatres: series = 1 readpylevel = 0 metainfo['Pyramid Level Output'] = readpylevel # open the ImgPlus imps = BF.openImagePlus(options) # read image data using the specified pyramid level imp, slices, width, height, pylevel = ImageTools.getImageSeries(imps, series=readpylevel) metainfo['Output Slices'] = slices metainfo['Output SizeX'] = width metainfo['Output SizeY'] = height return imp, metainfo
def run(imagefile, useBF=True, series=0): log.info('Image Filename : ' + imagefile) if not useBF: # using IJ static method imp = IJ.openImage(imagefile) if useBF: # initialize the importer options options = ImporterOptions() options.setOpenAllSeries(True) options.setShowOMEXML(False) options.setConcatenate(True) options.setAutoscale(True) options.setId(imagefile) # open the ImgPlus imps = BF.openImagePlus(options) imp = imps[series] # apply the filter if FILTERTYPE != 'NONE': # apply filter log.info('Apply Filter : ' + FILTERTYPE) log.info('Filter Radius : ' + str(FILTER_RADIUS)) # apply the filter based on the choosen type imp = apply_filter(imp, radius=FILTER_RADIUS, filtertype=FILTERTYPE) if FILTERTYPE == 'NONE': log.info('No filter selected. Do nothing.') return imp
return zpimp def saveMip(img, file_path): if mipPrefTIFF: FileSaver(img).saveAsTiff(file_path + ".tiff") if mipPrefJPG: FileSaver(img).saveAsJpeg(file_path + ".jpg") for root, dirs, files in os.walk(inDir): for file in files: if file.endswith(fileExt): logging.info('Starting image #%i (%s)', imageCount, str(file)) options = ImporterOptions() options.setAutoscale(True) options.setId(os.path.join(root, file)) options.setSplitChannels(True) imps = BF.openImagePlus(options) imageCount += 1 for imp in imps: reader = ImageReader() omeMeta = MetadataTools.createOMEXMLMetadata() reader.setMetadataStore(omeMeta) reader.setId(os.path.join(root, file)) filename = str(imp) channel_id = int(re.findall("C=(\d)", filename)[0]) channel_name = omeMeta.getChannelName(0, channel_id) out_name = filename.split('"')[1] out_name = out_name.split(fileExt)[0] + "_" + str(channel_name)
from ij import IJ from ij.io import DirectoryChooser import os from loci.plugins import BF from loci.plugins.in import ImporterOptions inputFolder = DirectoryChooser('Set input directory.').getDirectory() outputFolder = DirectoryChooser('Set output directory.').getDirectory() for filename in os.listdir(inputFolder): if '.zvi' in filename: id = inputFolder +'/'+ filename; options = ImporterOptions(); options.setId(id); options.setAutoscale(True); options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE); image = BF.openImagePlus(options)[0]; nameWithoutExt = os.path.splitext(filename)[0] # Export the image save_path = outputFolder +'/' + nameWithoutExt + '.ome.tif' IJ.run(image, "Bio-Formats Exporter", "save=" + save_path + " compression=Uncompressed"); image.close()
import fiji.plugin.trackmate.features.spot.SpotIntensityAnalyzerFactory as SpotIntensityAnalyzerFactory import fiji.plugin.trackmate.features.track.TrackSpeedStatisticsAnalyzer as TrackSpeedStatisticsAnalyzer import fiji.plugin.trackmate.features.track.TrackBranchingAnalyzer as TrackBranchingAnalyzer import fiji.plugin.trackmate.features.track.TrackDurationAnalyzer as TrackDurationAnalyzer import fiji.plugin.trackmate.features.track.TrackSpotQualityFeatureAnalyzer as TrackSpotQualityFeatureAnalyzer # Define path to list of movies path_to_movies = "C:\\Users\\ronawong\\Desktop\\TEST\\data\\" list_of_movies = [f for f in listdir(path_to_movies) if isfile(join(path_to_movies, f))] for movie in list_of_movies: id = path_to_movies + movie options = ImporterOptions() options.setId(id) options.setAutoscale(False) bf_imp = BF.openImagePlus(options) imp = bf_imp[0] #------------------------- # Instantiate model object #------------------------- model = Model() # Set logger model.setLogger(Logger.IJ_LOGGER) #------------------------ # Prepare settings object