Mercurial > repos > imgteam > imagej2_sharpen
diff imagej2_enhance_contrast_jython_script.py @ 0:a84f2cbf091b draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
author | imgteam |
---|---|
date | Tue, 17 Sep 2019 17:08:08 -0400 |
parents | |
children | 4c43ba752312 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagej2_enhance_contrast_jython_script.py Tue Sep 17 17:08:08 2019 -0400 @@ -0,0 +1,42 @@ +import jython_utils +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 = jython_utils.asbool( sys.argv[ -5 ] ) +saturated_pixels = sys.argv[ -4 ] +normalize = jython_utils.asbool( sys.argv[ -3 ] ) +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' ) +try: + # 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 ) +except Exception, e: + jython_utils.handle_error( error_log, str( e ) )