Mercurial > repos > imgteam > imagej2_adjust_threshold_binary
annotate imagej2_noise_jython_script.py @ 3:2b007b1e6c1b draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
author | imgteam |
---|---|
date | Wed, 25 Sep 2024 16:06:33 +0000 |
parents | da29019170f1 |
children |
rev | line source |
---|---|
0
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
1 import sys |
1
29a4d422f32a
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 2afb24f3c81d625312186750a714d702363012b5"
imgteam
parents:
0
diff
changeset
|
2 |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
3 from ij import IJ, ImagePlus |
0
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
4 |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
5 # Fiji Jython interpreter implements Python 2.5 which does not |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
6 # provide support for argparse. |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
7 input_file = sys.argv[-8] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
8 image_datatype = sys.argv[-7] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
9 noise = sys.argv[-6] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
10 standard_deviation = sys.argv[-5] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
11 radius = sys.argv[-4] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
12 threshold = sys.argv[-3] |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
13 which_outliers = sys.argv[-2] |
1
29a4d422f32a
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 2afb24f3c81d625312186750a714d702363012b5"
imgteam
parents:
0
diff
changeset
|
14 tmp_output_path = sys.argv[-1] |
0
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
15 |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
16 # Open the input image file. |
1
29a4d422f32a
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 2afb24f3c81d625312186750a714d702363012b5"
imgteam
parents:
0
diff
changeset
|
17 image_plus = IJ.openImage(input_file) |
0
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
18 image_type = image_plus.getType() |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
19 is32BITS_GREY = image_type == ImagePlus.GRAY32 |
0
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
20 # Create an ImagePlus object for the image. |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
21 image_plus_copy = image_plus.duplicate() |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
22 |
f1ba33cd9edf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
imgteam
parents:
diff
changeset
|
23 # Perform the analysis on the ImagePlus object. |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
24 try: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
25 if noise == "add_noise": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
26 IJ.run(image_plus_copy, "Add Noise", "") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
27 elif noise == "add_specified_noise": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
28 IJ.run(image_plus_copy, "Add Specified Noise...", "standard=%s" % standard_deviation) |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
29 elif noise == "salt_and_pepper": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
30 IJ.run(image_plus_copy, "Salt and Pepper", "") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
31 elif noise == "despeckle": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
32 IJ.run(image_plus_copy, "Despeckle", "") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
33 elif noise == "remove_outliers": |
2
da29019170f1
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 57a0433defa3cbc37ab34fbb0ebcfaeb680db8d5
imgteam
parents:
1
diff
changeset
|
34 IJ.run( |
da29019170f1
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 57a0433defa3cbc37ab34fbb0ebcfaeb680db8d5
imgteam
parents:
1
diff
changeset
|
35 image_plus_copy, |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
36 "Remove Outliers...", |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
37 "radius=%s threshold=%s which=%s" % (radius, threshold, which_outliers) |
2
da29019170f1
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 57a0433defa3cbc37ab34fbb0ebcfaeb680db8d5
imgteam
parents:
1
diff
changeset
|
38 ) |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
39 elif noise == "remove_nans": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
40 if is32BITS_GREY: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
41 IJ.run(image_plus_copy, "Remove NaNs...", "") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
42 else: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
43 raise Exception("Remove NaNs can only be applied to 32bits grey images.") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
44 elif noise == "rof_denoise": |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
45 if is32BITS_GREY: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
46 IJ.run(image_plus_copy, "ROF Denoise", "") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
47 else: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
48 raise Exception("ROF Denoise can only be applied to 32bits grey images.") |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
49 except Exception as e: |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
50 # This is due to some operations like remove_outliers and despeckle which block the script |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
51 print(e) |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
52 exit(1) |
1
29a4d422f32a
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 2afb24f3c81d625312186750a714d702363012b5"
imgteam
parents:
0
diff
changeset
|
53 # Save the ImagePlus object as a new image. |
29a4d422f32a
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 2afb24f3c81d625312186750a714d702363012b5"
imgteam
parents:
0
diff
changeset
|
54 IJ.saveAs(image_plus_copy, image_datatype, tmp_output_path) |
3
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
55 # This is due to some operations like remove_outliers and despeckle which block the script |
2b007b1e6c1b
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
imgteam
parents:
2
diff
changeset
|
56 exit(0) |