def readSingleChannelImg(imgFile): options = ImporterOptions() options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) options.setId(imgFile) imps = BF.openImagePlus(options) ip = imps[0] return(ip)
def extractChannel(oirFile, ch): options = ImporterOptions() options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) options.setId(oirFile) options.setCBegin(0, ch) options.setCEnd(0, ch) #options.setSeriesOn(1,True) imps = BF.openImagePlus(options) ip = imps[0] return(ip)
def open_image(imgfile): options = ImporterOptions() options.setId(imgfile) options.setSplitChannels(False) options.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE) imps = BF.openImagePlus(options) splitimps = [ImagePlus("%s-C-%i" % (imps[0].getTitle(), i),imps[0].getStack().getProcessor(i)) for i in range(1,imps[0].getNChannels()+1)] for si in splitimps: si.setCalibration(imps[0].getCalibration().copy()) return imps[0], splitimps
def openCroppedImageUsingBF(filepath,x,y,xw,yw,zs,ze, crop): # read in and display ImagePlus(es) with arguments options = ImporterOptions() options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) if crop: options.setCrop(True) options.setCropRegion(0, Region(x,y,xw,yw)) options.setTBegin(0, zs) options.setTEnd(0, ze) options.setId(filepath) imps = BF.openImagePlus(options) return imps[0]
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 trans_to_tif(file_list, overwrite = False): if file_list is not None: for path in file_list: opts = ImporterOptions() opts.setId(path) opts.setVirtual(True) opts.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE) opts.setOpenAllSeries(True) process = ImportProcess(opts) try: process.execute() except: pass else: process.execute() try: imps = ImagePlusReader(process).openImagePlus() except: IJ.log(path + "\n" + "This file was not properly processed") pass else: dir_name = os.path.dirname(path) file_name = os.path.basename(os.path.splitext(path)[0]) save_dir = os.path.join(dir_name, file_name) if not os.path.exists(save_dir): os.makedirs(save_dir) imps = ImagePlusReader(process).openImagePlus() for i, imp in enumerate(imps): save_path = os.path.join(save_dir, file_name + "_pos{}.tif".format(i + 1)) if not os.path.exists(save_path): IJ.saveAsTiff(imp, save_path) IJ.freeMemory() else: if overwrite: IJ.saveAsTiff(imp, save_path) IJ.freeMemory() else: pass
def import_image(filename, color_mode='color', split_c=False, split_z=False, split_t=False): """Open an image file using the Bio-Formats importer. Parameters ---------- filename : str The full path to the file to be imported through Bio-Formats. color_mode : str, optional The color mode to be used for the resulting ImagePlus, one of 'color', 'composite', 'gray' and 'default'. split_c : bool, optional Whether to split the channels into separate ImagePlus objects. split_z : bool, optional Whether to split the z-slices into separate ImagePlus objects. split_t : bool, optional Whether to split the time points into separate ImagePlus objects. Returns ------- ij.ImagePlus[] A list of ImagePlus objects resulting from the import. """ options = ImporterOptions() mode = { 'color' : ImporterOptions.COLOR_MODE_COLORIZED, 'composite' : ImporterOptions.COLOR_MODE_COMPOSITE, 'gray' : ImporterOptions.COLOR_MODE_GRAYSCALE, 'default' : ImporterOptions.COLOR_MODE_DEFAULT, } options.setColorMode(mode[color_mode]) options.setSplitChannels(split_c) options.setSplitFocalPlanes(split_z) options.setSplitTimepoints(split_t) options.setId(filename) log.info("Reading [%s]", filename) orig_imps = BF.openImagePlus(options) log.debug("Opened [%s] %s", filename, type(orig_imps)) return orig_imps
def main(): root = myDir.getPath() # get the root out the java file object print(root) import os, glob # set up bioformats from loci.plugins import BF from loci.plugins.in import ImporterOptions options = ImporterOptions() options.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE) options.setGroupFiles(True) # if the files are named logically if will group them into a stack # this will do the maximum intensity projection from ij.plugin import ZProjector Zproj = ZProjector() for path, subdirs, files in os.walk(root): print(path) # just get the one of the files that matches your image pattern flist = glob.glob(os.path.join(path,"*.tif")) print(len(flist)) if( flist ): file = flist[0] print("Processing {}".format(file)) options.setId(file) imp = BF.openImagePlus(options)[0] # show the image if you want to see it IJ.run(imp, "Grays", "") imp.show() imp_max = Zproj.run(imp,'max') IJ.run(imp_max, "Grays", "") imp_max.show() # save the Z projection IJ.save(imp_max,file.rsplit('_',1)[0]+'_processed.tif')
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()
for l in open(filetab): f = l.strip().split() out = f[0] ch1 = '%s/%s' %(path,f[1]) ch2 = '%s/%s' %(path,f[2]) print('%s: opening %s and %s' %(out,ch1,ch2)) ch1 = ij.IJ.openImage(ch1) conv = ImageConverter(ch1) conv.convertToGray16() # ch1.show() ch2 = ij.IJ.openImage(ch2) conv = ImageConverter(ch2) conv.convertToGray16() # ch2.show() # ch1.close() # ch2.close() mrg = RGBStackMerge.mergeChannels([ch1, ch2], False) # mrg.show() mrgf = '%s/%s.merged.tiff' %(path,out) ij.IJ.saveAs(mrg,"Tiff",mrgf) mrg.close() opts = ImporterOptions() opts.setId(mrgf) opts.setColorMode(ImporterOptions.COLOR_MODE_COMPOSITE) bio = BF.openImagePlus(opts)[0] # bio.show() ij.IJ.saveAs(bio.flatten(), "Tiff", '%s/%s.flat.tiff' %(path,out)) # bio.close() # while(True): continue
# read in and display ImagePlus object(s) from loci.plugins import BF file = "/Users/curtis/data/tubhiswt4D.ome.tif" imps = BF.openImagePlus(file) for imp in imps: imp.show() # read in and display ImagePlus(es) with arguments from loci.common import Region from loci.plugins.in import ImporterOptions options = ImporterOptions() options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) options.setCrop(True) options.setCropRegion(0, Region(15, 25, 50, 70)) options.setId(file) imps = BF.openImagePlus(options) for imp in imps: imp.show() # parse metadata from loci.formats import ImageReader from loci.formats import MetadataTools reader = ImageReader() omeMeta = MetadataTools.createOMEXMLMetadata() reader.setMetadataStore(omeMeta) reader.setId(file) seriesCount = reader.getSeriesCount() reader.close() # print out series count from two different places (they should always match!) from ij import IJ