Mercurial > repos > iuc > imagej2_analyze_skeleton
annotate jython_script.py @ 0:a989ca433027 draft
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
| author | iuc |
|---|---|
| date | Tue, 04 Aug 2015 11:14:30 -0400 |
| parents | |
| children | dd8e4e000d2f |
| rev | line source |
|---|---|
|
0
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
1 import jython_utils |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
2 import math |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
3 import sys |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
4 from ij import IJ |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
5 from ij import ImagePlus |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
6 from skeleton_analysis import AnalyzeSkeleton_ |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
7 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
8 BASIC_NAMES = [ 'Branches', 'Junctions', 'End-point Voxels', |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
9 'Junction Voxels', 'Slab Voxels', 'Average branch length', |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
10 'Triple Points', 'Quadruple Points', 'Maximum Branch Length' ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
11 DETAIL_NAMES = [ 'Skeleton ID', 'Branch length', 'V1 x', 'V1 y', 'V1 z', 'V2 x', |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
12 'V2 y', 'V2 z', 'Euclidean distance' ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
13 VALID_IMAGE_TYPES = [ ImagePlus.GRAY8 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
14 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
15 def asbool( val ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
16 return val == 'yes' |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
17 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
18 def get_euclidean_distance( vertex1, vertex2 ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
19 x1, y1, z1 = get_points( vertex1 ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
20 x2, y2, z2 = get_points( vertex2 ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
21 return math.sqrt( math.pow( ( x2 - x1 ), 2 ) + |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
22 math.pow( ( y2 - y1 ), 2 ) + |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
23 math.pow( ( z2 - z1 ), 2 ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
24 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
25 def get_graph_length( graph ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
26 length = 0 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
27 for edge in graph.getEdges(): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
28 length = length + edge.getLength() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
29 return length |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
30 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
31 def get_points( vertex ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
32 # An array of Point, which has attributes x,y,z. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
33 point = vertex.getPoints()[ 0 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
34 return point.x, point.y, point.z |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
35 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
36 def get_sorted_edge_lengths( graph ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
37 # Return graph edges sorted from longest to shortest. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
38 edges = graph.getEdges() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
39 edges = sorted( edges, key=lambda edge: edge.getLength(), reverse=True ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
40 return edges |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
41 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
42 def get_sorted_graph_lengths( result ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
43 # Get the separate graphs (skeletons). |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
44 graphs = result.getGraph() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
45 # Sort graphs from longest to shortest. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
46 graphs = sorted( graphs, key=lambda g: get_graph_length( g ), reverse=True ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
47 return graphs |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
48 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
49 def save( result, output, show_detailed_info, calculate_largest_shortest_path, sep='\t' ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
50 num_trees = int( result.getNumOfTrees() ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
51 outf = open( output, 'wb' ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
52 outf.write( '# %s\n' % sep.join( BASIC_NAMES ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
53 for index in range( num_trees ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
54 outf.write( '%d%s' % ( result.getBranches()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
55 outf.write( '%d%s' % ( result.getJunctions()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
56 outf.write( '%d%s' % ( result.getEndPoints()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
57 outf.write( '%d%s' % ( result.getJunctionVoxels()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
58 outf.write( '%d%s' % ( len( result.getListOfSlabVoxels() ), sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
59 outf.write( '%.3f%s' % ( result.getAverageBranchLength()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
60 outf.write( '%d%s' % ( result.getTriples()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
61 outf.write( '%d%s' % ( result.getQuadruples()[ index ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
62 outf.write( '%.3f' % result.getMaximumBranchLength()[ index ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
63 if calculate_largest_shortest_path: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
64 outf.write( '%s%.3f%s' % ( sep, result.shortestPathList.get( index ), sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
65 outf.write( '%d%s' % ( result.spStartPosition[ index ][ 0 ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
66 outf.write( '%d%s' % ( result.spStartPosition[ index ][ 1 ], sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
67 outf.write( '%d\n' % result.spStartPosition[ index ][ 2 ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
68 else: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
69 outf.write( '\n' ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
70 if show_detailed_info: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
71 outf.write( '# %s\n' % sep.join( DETAIL_NAMES ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
72 # The following index is a placeholder for the skeleton ID. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
73 # The terms "graph" and "skeleton" refer to the same thing. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
74 # Also, the SkeletonResult.java code states that the |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
75 # private Graph[] graph object is an array of graphs (one |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
76 # per tree). |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
77 for index, graph in enumerate( get_sorted_graph_lengths( result ) ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
78 for edge in get_sorted_edge_lengths( graph ): |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
79 vertex1 = edge.getV1() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
80 x1, y1, z1 = get_points( vertex1 ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
81 vertex2 = edge.getV2() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
82 x2, y2, z2 = get_points( vertex2 ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
83 outf.write( '%d%s' % ( index+1, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
84 outf.write( '%.3f%s' % ( edge.getLength(), sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
85 outf.write( '%d%s' % ( x1, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
86 outf.write( '%d%s' % ( y1, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
87 outf.write( '%d%s' % ( z1, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
88 outf.write( '%d%s' % ( x2, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
89 outf.write( '%d%s' % ( y2, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
90 outf.write( '%d%s' % ( z2, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
91 outf.write( '%.3f' % get_euclidean_distance( vertex1, vertex2 ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
92 if calculate_largest_shortest_path: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
93 # Keep number of separated items the same for each line. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
94 outf.write( '%s %s' % ( sep, sep ) ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
95 outf.write( ' %s' % sep ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
96 outf.write( ' %s' % sep ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
97 outf.write( ' \n' ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
98 else: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
99 outf.write( '\n' ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
100 outf.close() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
101 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
102 # Fiji Jython interpreter implements Python 2.5 which does not |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
103 # provide support for argparse. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
104 error_log = sys.argv[ -7 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
105 input = sys.argv[ -6 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
106 prune_cycle_method = sys.argv[ -5 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
107 prune_ends = asbool( sys.argv[ -4 ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
108 calculate_largest_shortest_path = asbool( sys.argv[ -3 ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
109 if calculate_largest_shortest_path: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
110 BASIC_NAMES.extend( [ 'Longest Shortest Path', 'spx', 'spy', 'spz' ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
111 DETAIL_NAMES.extend( [ ' ', ' ', ' ', ' ' ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
112 show_detailed_info = asbool( sys.argv[ -2 ] ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
113 output = sys.argv[ -1 ] |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
114 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
115 # Open the input image file. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
116 input_image_plus = IJ.openImage( input ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
117 bit_depth = input_image_plus.getBitDepth() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
118 image_type = input_image_plus.getType() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
119 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
120 # Create a copy of the image. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
121 input_image_plus_copy = input_image_plus.createImagePlus() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
122 image_processor_copy = input_image_plus.getProcessor().duplicate() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
123 input_image_plus_copy.setProcessor( "iCopy", image_processor_copy ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
124 |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
125 try: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
126 if image_type not in VALID_IMAGE_TYPES: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
127 # Convert the image to binary grayscale. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
128 IJ.run( input_image_plus_copy, "Make Binary","" ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
129 # Run AnalyzeSkeleton |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
130 analyze_skeleton = AnalyzeSkeleton_() |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
131 analyze_skeleton.setup( "", input_image_plus_copy ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
132 if prune_cycle_method == 'none': |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
133 prune_index = analyze_skeleton.NONE |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
134 elif prune_cycle_method == 'shortest_branch': |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
135 prune_index = analyze_skeleton.SHORTEST_BRANCH |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
136 elif prune_cycle_method == 'lowest_intensity_voxel': |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
137 prune_index = analyze_skeleton.LOWEST_INTENSITY_VOXEL |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
138 elif prune_cycle_method == 'lowest_intensity_branch': |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
139 prune_index = analyze_skeleton.LOWEST_INTENSITY_BRANCH |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
140 result = analyze_skeleton.run( prune_index, |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
141 prune_ends, |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
142 calculate_largest_shortest_path, |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
143 input_image_plus_copy, |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
144 True, |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
145 True ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
146 # Save the results. |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
147 save( result, output, show_detailed_info, calculate_largest_shortest_path ) |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
148 except Exception, e: |
|
a989ca433027
planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff
changeset
|
149 jython_utils.handle_error( error_log, str( e ) ) |
