77
88import org .scijava .plugin .Plugin ;
99
10+ import fiji .plugin .trackmate .Logger ;
1011import fiji .plugin .trackmate .Model ;
1112import fiji .plugin .trackmate .Spot ;
1213import fiji .plugin .trackmate .TrackMate ;
@@ -51,25 +52,40 @@ public class LabelImgExporter extends AbstractTMAction
5152 @ Override
5253 public void execute ( final TrackMate trackmate )
5354 {
54- createLabelImagePlus ( trackmate ).show ();
55+ createLabelImagePlus ( trackmate , logger ).show ();
5556 }
5657
5758 public static final ImagePlus createLabelImagePlus ( final TrackMate trackmate )
5859 {
59- return createLabelImagePlus ( trackmate .getModel (), trackmate .getSettings ().imp );
60+ return createLabelImagePlus ( trackmate , Logger .VOID_LOGGER );
61+ }
62+
63+ public static final ImagePlus createLabelImagePlus ( final TrackMate trackmate , final Logger logger )
64+ {
65+ return createLabelImagePlus ( trackmate .getModel (), trackmate .getSettings ().imp , logger );
6066 }
6167
6268 public static final ImagePlus createLabelImagePlus ( final Model model , final ImagePlus imp )
69+ {
70+ return createLabelImagePlus ( model , imp , Logger .VOID_LOGGER );
71+ }
72+
73+ public static final ImagePlus createLabelImagePlus ( final Model model , final ImagePlus imp , final Logger logger )
6374 {
6475 final int [] dimensions = imp .getDimensions ();
6576 final int [] dims = new int [] { dimensions [ 0 ], dimensions [ 1 ], dimensions [ 3 ], dimensions [ 4 ] };
6677
67- final ImagePlus lblImp = createLabelImagePlus ( model , dims );
78+ final ImagePlus lblImp = createLabelImagePlus ( model , dims , logger );
6879 lblImp .setCalibration ( imp .getCalibration ().copy () );
6980 lblImp .setTitle ( "LblImg_" + imp .getTitle () );
7081 return lblImp ;
7182 }
7283
84+ public static final ImagePlus createLabelImagePlus ( final Model model , final int [] dimensions )
85+ {
86+ return createLabelImagePlus ( model , dimensions , Logger .VOID_LOGGER );
87+ }
88+
7389 /**
7490 * @param model
7591 * @param dimensions
@@ -78,27 +94,33 @@ public static final ImagePlus createLabelImagePlus( final Model model, final Ima
7894 * @return a new {@link ImagePlus}
7995 */
8096
81- public static final ImagePlus createLabelImagePlus ( final Model model , final int [] dimensions )
97+ public static final ImagePlus createLabelImagePlus ( final Model model , final int [] dimensions , final Logger logger )
8298 {
8399 final long [] dims = new long [ 4 ];
84100 for ( int d = 0 ; d < dims .length ; d ++ )
85101 dims [ d ] = dimensions [ d ];
86102
87- final ImagePlus lblImp = ImageJFunctions .wrap ( createLabelImg ( model , dims ), "LblImage" );
103+ final ImagePlus lblImp = ImageJFunctions .wrap ( createLabelImg ( model , dims , logger ), "LblImage" );
88104 lblImp .setDimensions ( 1 , dimensions [ 2 ], dimensions [ 3 ] );
89105 lblImp .setOpenAsHyperStack ( true );
106+ lblImp .resetDisplayRange ();
90107 return lblImp ;
91108 }
92109
110+ public static final Img < UnsignedShortType > createLabelImg ( final Model model , final long [] dimensions )
111+ {
112+ return createLabelImg ( model , dimensions , Logger .VOID_LOGGER );
113+ }
114+
93115 /**
94116 * @param model
95117 * @param dimensions
96118 * the dimensions of the output image (width, height, nZSlices,
97119 * nFrames) as a 4 element int array.
120+ *
98121 * @return a new {@link ImagePlus}
99122 */
100-
101- public static final Img < UnsignedShortType > createLabelImg ( final Model model , final long [] dimensions )
123+ public static final Img < UnsignedShortType > createLabelImg ( final Model model , final long [] dimensions , final Logger logger )
102124 {
103125 /*
104126 * Create target image.
@@ -128,6 +150,7 @@ public static final Img< UnsignedShortType > createLabelImg( final Model model,
128150 * Frame by frame iteration.
129151 */
130152
153+ logger .log ( "Writing label image." );
131154 for ( int frame = 0 ; frame < dimensions [ 3 ]; frame ++ )
132155 {
133156 final ImgPlus < UnsignedShortType > imgC = HyperSliceImgPlus .fixChannelAxis ( imgPlus , 0 );
@@ -145,7 +168,9 @@ public static final Img< UnsignedShortType > createLabelImg( final Model model,
145168 for ( final UnsignedShortType pixel : neighborhood )
146169 pixel .set ( id );
147170 }
171+ logger .setProgress ( ( double ) ( 1 + frame ) / dimensions [ 3 ] );
148172 }
173+ logger .log ( "Done." );
149174
150175 return lblImg ;
151176 }
0 commit comments