Mercurial > repos > iuc > imagej2_bunwarpj_align
diff jython_script.py @ 0:7a96d686d380 draft
planemo upload commit 4bf97847c35c4dcf9638008b9b4b6c4e10015f19
| author | iuc |
|---|---|
| date | Tue, 09 Jun 2015 12:22:23 -0400 |
| parents | |
| children | be709f819445 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jython_script.py Tue Jun 09 12:22:23 2015 -0400 @@ -0,0 +1,52 @@ +import sys +import imagej2_base_utils +from ij import IJ + +# Fiji Jython interpreter implements Python 2.5 which does not +# provide support for argparse. + +if sys.argv[ -1 ].lower() in [ 'true' ]: + mono = True +else: + mono = False + +if mono: + # bUnwarpJ has been called with the -mono param. + source_tiff_path = sys.argv[ -4 ] + source_datatype = sys.argv[ -3 ] + source_path = sys.argv[ -2 ] +else: + source_tiff_path = sys.argv[ -7 ] + source_datatype = sys.argv[ -6 ] + source_path = sys.argv[ -5 ] + target_tiff_path = sys.argv[ -4 ] + target_datatype = sys.argv[ -3 ] + target_path = sys.argv[ -2 ] + +def convert_before_saving_as_tiff( registered_image ): + # The bUnwarpJ macro produces tiff image stacks consisting of 3 + # slices which can be viewed in ImageJ. The 3 slices are:: + # 1) the registered image, 2) the target image and 3) the black/white + # warp image. Galaxy supports only single-layered images, so we have + # to convert the image to something other than tiff so that slices are + # eliminated and we can then convert back to tiff for saving. This is + # kind of a hack - there is probably a way to do this without converting + # twice. I messed around with the the ImageJ getSlice() method, but + # couldn't get it to produce what is needed here. + tmp_dir = imagej2_base_utils.get_temp_dir() + tmp_out_png_path = imagej2_base_utils.get_temporary_image_path( tmp_dir, 'png' ) + IJ.saveAs( registered_image, 'png', tmp_out_png_path ) + return IJ.openImage( tmp_out_png_path ) + +# Save the Registered Source Image. +registered_source_image = IJ.openImage( source_tiff_path ) +if source_datatype == 'tiff': + registered_source_image = convert_before_saving_as_tiff( registered_source_image ) +IJ.saveAs( registered_source_image, source_datatype, source_path ) + +if not mono: + # Save the Registered Target Image. + registered_target_image = IJ.openImage( target_tiff_path ) + if target_datatype == 'tiff': + registered_target_image = convert_before_saving_as_tiff( registered_target_image ) + IJ.saveAs( registered_target_image, target_datatype, target_path )
