view imagej2_enhance_contrast_jython_script.py @ 2:756e062741dc draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 57a0433defa3cbc37ab34fbb0ebcfaeb680db8d5
author imgteam
date Sun, 05 Nov 2023 10:57:39 +0000
parents 7a44772cc89f
children 73cc4e6a741d
line wrap: on
line source

import sys

from ij import IJ

# Fiji Jython interpreter implements Python 2.5 which does not
# provide support for argparse.
error_log = sys.argv[-7]
input = sys.argv[-6]
equalize_histogram = sys.argv[-5] == "yes"
saturated_pixels = sys.argv[-4]
normalize = sys.argv[-3] == "yes"
tmp_output_path = sys.argv[-2]
output_datatype = sys.argv[-1]

# Open the input image file.
input_image_plus = IJ.openImage(input)

# Create a copy of the image.
input_image_plus_copy = input_image_plus.duplicate()
image_processor_copy = input_image_plus_copy.getProcessor()
bit_depth = image_processor_copy.getBitDepth()

# Set the options
options = []
# If equalize_histogram, saturated_pixels and normalize are ignored.
if equalize_histogram:
    options.append("equalize")
else:
    if saturated_pixels not in [None, "None"]:
        # Fiji allows only a single decimal place for this value.
        options.append("saturated=%.3f" % float(saturated_pixels))
    # Normalization of RGB images is not supported.
    if bit_depth != 24 and normalize:
        options.append("normalize")
# Run the command.
options = "%s" % " ".join(options)
IJ.run(input_image_plus_copy, "Enhance Contrast...", options)
# Save the ImagePlus object as a new image.
IJ.saveAs(input_image_plus_copy, output_datatype, tmp_output_path)