annotate imagej2_skeletonize3d.xml @ 0:8b787f641b9c draft

planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
author iuc
date Tue, 04 Aug 2015 13:21:32 -0400
parents
children 269923244cc8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
1 <?xml version='1.0' encoding='UTF-8'?>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
2 <tool id="imagej2_skeletonize3d" name="Skeletonize images" version="1.0.0">
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
3 <description>with ImageJ2</description>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
4 <macros>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
5 <import>imagej2_macros.xml</import>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
6 </macros>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
7 <expand macro="fiji_20141125_requirements" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
8 <command>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
9 <![CDATA[
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
10 python $__tool_directory__/imagej2_skeletonize3d.py
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
11 --input "$input"
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
12 --input_datatype $input.ext
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
13 @max_heap_size_args@
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
14 --jython_script $__tool_directory__/jython_script.py
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
15 --output "$output"
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
16 --output_datatype $output_datatype
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
17 ]]>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
18 </command>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
19 <inputs>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
20 <param format="bmp,eps,gif,jpg,pcx,pgm,png,psd,tiff" name="input" type="data" label="Select grayscale image"/>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
21 <param name="output_datatype" type="select" label="Save as format">
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
22 <expand macro="image_datatypes" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
23 </param>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
24 <expand macro="max_heap_size_type_conditional" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
25 </inputs>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
26 <outputs>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
27 <data name="output" format_source="input" label="${tool.name} on ${on_string}">
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
28 <actions>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
29 <action type="format">
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
30 <option type="from_param" name="output_datatype" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
31 </action>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
32 </actions>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
33 </data>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
34 </outputs>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
35 <tests>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
36 <test>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
37 <param name="input" value="blobs.gif" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
38 <param name="input_datatype" value="gif" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
39 <param name="output_datatype" value="gif" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
40 <output name="output" file="skeletonized_blobs.gif" compare="sim_size" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
41 </test>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
42 <test>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
43 <param name="input" value="clown.jpg" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
44 <param name="input_datatype" value="jpg" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
45 <param name="output_datatype" value="jpg" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
46 <output name="output" file="skeletonized_clown.jpg" compare="sim_size" />
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
47 </test>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
48 </tests>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
49 <help>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
50
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
51 .. class:: warningmark
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
52
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
53 The underlying AnalyzeSkeleton Fiji plugin works on binary images, so other image types will
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
54 automatically be converted to binary before they are analyzed. This step is performed using the
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
55 ImageJ2 **Make Binary** command with the following settings: **Iterations:** 1, **Count:** 1,
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
56 **Black background:** No, **Pad edges when eroding:** No. If these settings are not appropriate,
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
57 first manually convert the image to binary using the **Convert to binary (black and white) with
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
58 ImageJ2** tool, which allows you to change them.
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
59
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
60 **What it does**
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
61
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
62 <![CDATA[
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
63 Skeletonizes a 2D or 3D binary (8-bit) image. As Hanno Homman explains in his paper, binary thinning is
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
64 used for finding the centerlines (”skeleton”) of objects in the input image. The general idea is to erode
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
65 the object’s surface iteratively until only the skeleton remains. Erosion has to be performed symmetrically
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
66 in order to the guarantee medial position of the skeleton lines and such that the connectedness of the
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
67 object is preserved. Care has to be taken in order not to create holes or cavities in the object.
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
68
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
69 There are two major approaches to image thinning: a) kernel-based filters and b) decision trees. Kernel-based
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
70 filters apply a structuring element to the image and can generally be extended to dimensions higher than 3D,
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
71 to find computationally efficient solutions for 4D and higher dimensions is subject of ongoing research.
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
72 Methods based on decision trees are thus far limited to 2D and 3D, but are potentially faster than morphological
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
73 filters, if they are well designed and can find more deletable points at each iteration.
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
74
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
75 In 3D there are 67,108,864 possible binary combinations of object and background voxels in a 26-neighborhood,
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
76 which cannot be completely captured by kernel-based filters. Lee et al. have demonstrated in their work that
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
77 their solution, based on a decision tree, can handle all these cases correctly and find all deletable surface
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
78 points at each iteration. Thus their algorithm allows for a very fast iterative erosion process.
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
79 ]]>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
80 </help>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
81 <citations>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
82 <citation type="doi">10.1006/cgip.1994.1042</citation>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
83 <citation type="doi">10.1038/nmeth.2102</citation>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
84 </citations>
8b787f641b9c planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
iuc
parents:
diff changeset
85 </tool>