Created
March 29, 2022 12:01
-
-
Save NicoKiaru/ae1f598e734d563083eddad90ee17e2e to your computer and use it in GitHub Desktop.
Removes all 32 bits file from an Operetta dataset - crops values above 65535 #BIOP #Fiji #Operetta
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#@File(label = "Select the 'Images' folder of your Operetta dataset", style = "directory") folder | |
#@TaskService taskService | |
def task = taskService.createTask("Operetta Sanitizer ") | |
try { | |
task.setStatusMessage("Listing files...") | |
task.setProgressMaximum(0) | |
def fileList = folder.list() as List | |
task.setStatusMessage("number of files: "+fileList.size()+" dataset:"+FilenameUtils.getName(folder.getParent())) | |
task.setProgressMaximum(fileList.size()) | |
def lock = new Object() | |
fileList.parallelStream().forEach{filename -> { | |
def file = new File(folder, filename) | |
//IJ.log(file.getName()) | |
String extension = FilenameUtils.getExtension(filename) | |
if (("tiff".equals(extension))||("tif".equals(extension))) { | |
def reader = new MinimalTiffReader() | |
try { | |
def omeMeta = MetadataTools.createOMEXMLMetadata() | |
reader.setMetadataStore(omeMeta) | |
reader.setId(file.getAbsolutePath()) | |
reader.setSeries(0) | |
def pixelType = omeMeta.getPixelsType(0) | |
reader.close() | |
if (pixelType == PixelType.FLOAT) { | |
println(file.getName()+" is 32 bits! Converting to 16 bits") | |
def image = (new Opener()).openImage(file.getAbsolutePath()) | |
image.getProcessor().setMinAndMax(0, 65535); | |
image.setProcessor(image.getProcessor().convertToShortProcessor(true)) | |
String path = file.getAbsolutePath() | |
file.delete() | |
new FileSaver(image).saveAsTiff(path) | |
} | |
} catch (def e) { | |
IJ.log(e.getMessage()) | |
} | |
} | |
synchronized(lock) { | |
task.setProgressValue(task.getProgressValue()+1) | |
} | |
}} | |
} finally { | |
task.run(() -> {}) | |
} | |
import org.apache.commons.io.FilenameUtils | |
import ij.IJ | |
import loci.formats.in.MinimalTiffReader | |
import loci.formats.meta.IMetadata | |
import ome.xml.model.enums.PixelType | |
import loci.formats.MetadataTools | |
import ij.io.Opener | |
import ij.io.FileSaver |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment