annotate concat_channels.py @ 0:20094a73fc80 draft default tip

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
author thomaswollmann
date Wed, 12 Dec 2018 04:49:54 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
1 import argparse
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
2 import sys
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
3 import warnings
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
4 import numpy as np
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
5 import skimage.io
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
6 import skimage.util
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
7
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
8 def concat_channels(input_image_paths, output_image_path, axis):
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
9 images = []
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
10 for image_path in input_image_paths:
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
11 raw_image = skimage.io.imread(image_path)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
12 if len(raw_image.shape) == 2:
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
13 if axis == 0:
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
14 raw_image = [raw_image]
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
15 else:
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
16 raw_image = np.expand_dims(raw_image, 2)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
17 images.append(raw_image)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
18 res = np.concatenate(images, axis)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
19 with warnings.catch_warnings():
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
20 warnings.simplefilter("ignore")
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
21 res = skimage.util.img_as_uint(res) #Attention: precision loss
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
22 skimage.io.imsave(output_image_path, res, plugin='tifffile')
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
23
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
24 if __name__ == "__main__":
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
25 parser = argparse.ArgumentParser()
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
26 parser.add_argument('input_files', type=argparse.FileType('r'), nargs='+', help='input file')
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
27 parser.add_argument('-o', dest='out_file', type=argparse.FileType('w'), help='out file (TIFF)')
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
28 parser.add_argument('--axis', dest='axis', type=int, default=0, choices=[0,2], help='concatenation axis')
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
29 args = parser.parse_args()
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
30
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
31 # print([x.name for x in args.input_files], args.out_file.name, args.axis)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
32 concat_channels([x.name for x in args.input_files], args.out_file.name, args.axis)
20094a73fc80 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/concat_channels/ commit 27a6350188f687411bdd6bfe0d569c0803389ca0
thomaswollmann
parents:
diff changeset
33 # concat_channels(args.input_files, args.out_file, args.axis)