Changeset 7980
- Timestamp:
- 04/17/12 19:25:43 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/projects/flow-cytometry/src/main/java/loci/apps/flow/FlowCyto.java
r7973 r7980 12 12 import ij.plugin.frame.RoiManager; 13 13 import ij.process.ByteProcessor; 14 import ij.process.ShortProcessor; 14 15 15 16 import java.awt.image.ColorModel; … … 25 26 private static ImageStack stack, stackBF, stackIN; 26 27 private static int nSlices, nSlicesBF, nSlicesIN; 27 private static ByteProcessor bp; 28 // private static ByteProcessor bp; 29 private static ShortProcessor sp; 28 30 private static ColorModel theCM; 29 31 // private static String s_Name, s_Experiment, s_Params, s_Date, tempImageName; 30 32 private static double pixelMicronSquared; 31 private static byte[] dummyData;33 private static short[] dummyData; 32 34 private static Duplicator dup; 33 35 private static float sumIntensityAreasHolder; 36 private static long debugTimeStart; 34 37 35 38 … … 46 49 impBF.close(); 47 50 impIN.close(); 48 bp=null; 51 sp=null; 52 49 53 try{ 50 54 ResultsTable.getResultsTable().reset(); … … 83 87 r[ii]=(byte)ii; 84 88 85 theCM = new IndexColorModel(8, 256, r,r,r); 86 ByteProcessor initBP = new ByteProcessor(width,height);87 dummyData = new byte[width*height];88 bp = new ByteProcessor(width,height,dummyData, theCM);89 bp.createImage();89 theCM = new IndexColorModel(8, 256, r,r,r); //8, 256, r,g,b...but r,g,and b are all byte[256], exactly the same... 90 ShortProcessor initSP = new ShortProcessor(width,height); 91 dummyData = new short[width*height]; 92 sp = new ShortProcessor(width,height,dummyData, theCM); 93 sp.createImage(); 90 94 91 95 mode=mode.toLowerCase(); 92 96 93 97 if ("brightfield".equals(mode)) { 94 impBF = new ImagePlus("Brightfield images", init BP);98 impBF = new ImagePlus("Brightfield images", initSP); 95 99 stackBF = new ImageStack(width,height, theCM); 96 100 impBF.show(); 97 101 impBF.unlock(); 98 102 99 stackBF.addSlice("Slice "+nSlicesBF, bp);103 stackBF.addSlice("Slice "+nSlicesBF, sp); 100 104 impBF.setStack("Brightfield images", stackBF); 101 105 impBF.setSlice(1); … … 103 107 } 104 108 else if ("intensity".equals(mode)) { 105 impIN = new ImagePlus("Intensity images", init BP);109 impIN = new ImagePlus("Intensity images", initSP); 106 110 stackIN = new ImageStack(width,height, theCM); 107 111 impIN.show(); 108 112 impIN.unlock(); 109 113 110 stackIN.addSlice("Slice "+nSlicesIN, bp);114 stackIN.addSlice("Slice "+nSlicesIN, sp); 111 115 impIN.setStack("Intensity images", stackIN); 112 116 impIN.setSlice(1); … … 114 118 } 115 119 else if ("both".equals(mode)) { 116 impBF = new ImagePlus("Brightfield images", init BP);120 impBF = new ImagePlus("Brightfield images", initSP); 117 121 stackBF = new ImageStack(width,height, theCM); 118 122 impBF.show(); 119 123 impBF.unlock(); 120 124 121 stackBF.addSlice("Slice "+nSlicesBF, bp);125 stackBF.addSlice("Slice "+nSlicesBF, sp); 122 126 impBF.setStack("Brightfield images", stackBF); 123 127 impBF.setSlice(1); 124 128 impBF.unlock(); 125 129 126 impIN = new ImagePlus("Intensity images", init BP);130 impIN = new ImagePlus("Intensity images", initSP); 127 131 stackIN = new ImageStack(width,height, theCM); 128 132 impIN.show(); 129 133 impIN.unlock(); 130 134 131 stackIN.addSlice("Slice "+nSlicesIN, bp);135 stackIN.addSlice("Slice "+nSlicesIN, sp); 132 136 impIN.setStack("Intensity images", stackIN); 133 137 impIN.setSlice(1); … … 135 139 } 136 140 else { 137 imp = new ImagePlus("Islet images", init BP);141 imp = new ImagePlus("Islet images", initSP); 138 142 stack = new ImageStack(width,height, theCM); 139 143 imp.show(); 140 144 imp.unlock(); 141 145 142 stack.addSlice("Slice "+nSlices, bp);146 stack.addSlice("Slice "+nSlices, sp); 143 147 imp.setStack("Islet images", stack); 144 148 imp.setSlice(1); … … 166 170 167 171 @SuppressWarnings("static-access") 168 public static void showImage(int mode, int width, int height, byte[] imageData) {172 public static void showImage(int mode, int width, int height, short[] imageData) { 169 173 try{ 170 174 long initialTime = System.nanoTime(); 171 bp = new ByteProcessor(width,height,imageData, theCM); 172 bp.createImage(); 175 // bp = new ByteProcessor(width,height,imageData, theCM); 176 sp = new ShortProcessor(width, height, imageData, theCM, true); 177 // bp.createImage(); 173 178 174 179 //brightfield 175 180 if (mode == 1) { 176 stackBF.addSlice("Slice "+nSlicesBF, bp);181 stackBF.addSlice("Slice "+nSlicesBF, sp); 177 182 impBF.setStack("Brightfield Images", stackBF); 178 183 impBF.setSlice(stackBF.getSize()); … … 187 192 //intensity 188 193 else if (mode == 2) { 189 stackIN.addSlice("Slice "+nSlicesIN, bp);194 stackIN.addSlice("Slice "+nSlicesIN, sp); 190 195 impIN.setStack("Intensity Images", stackIN); 191 196 impIN.setSlice(stackIN.getSize()); … … 200 205 //default 201 206 else { 202 stack.addSlice("Slice "+nSlices, bp);207 stack.addSlice("Slice "+nSlices, sp); 203 208 imp.setStack("Islet Images", stack); 204 209 imp.setSlice(stack.getSize()); … … 350 355 if((sumBFPixelAreas!=0) && ((sumIntensityAreasHolder/sumBFPixelAreas) >= compareTOLow) && ((sumIntensityAreasHolder/sumBFPixelAreas) <= compareTOHigh)){ 351 356 352 //-----------------------FOR DEBUG PURPOSES--------------------//353 IJ.log("plugin finished -TRUE- on brightfield ratio image "+nSlicesBF+" in \t \t \t"+ ((System.nanoTime() - initialTime)/1000000) +"ms");354 //-------------------------------------------------------------//355 //-----------------------FOR DEBUG PURPOSES--------------------//356 IJ.log("_");357 //-------------------------------------------------------------//358 359 return true;357 //-----------------------FOR DEBUG PURPOSES--------------------// 358 IJ.log("plugin finished -TRUE- on brightfield ratio image "+nSlicesBF+" in \t \t \t"+ ((System.nanoTime() - initialTime)/1000000) +"ms"); 359 //-------------------------------------------------------------// 360 //-----------------------FOR DEBUG PURPOSES--------------------// 361 IJ.log("_"); 362 //-------------------------------------------------------------// 363 364 return true; 360 365 } 361 366 … … 368 373 if((sumBFPixelAreas!=0) && ((sumIntensityAreasHolder/sumBFPixelAreas) >= compareTOLow) && ((sumIntensityAreasHolder/sumBFPixelAreas) <= compareTOHigh)){ 369 374 370 //-----------------------FOR DEBUG PURPOSES--------------------//371 IJ.log("plugin finished TRUE on ISLET DEFAULT image "+nSlicesIN+" in \t \t \t"+ ((System.nanoTime() - initialTime)/1000000) +"ms");372 //-------------------------------------------------------------//373 //-----------------------FOR DEBUG PURPOSES--------------------//374 IJ.log("_");375 //-------------------------------------------------------------//376 377 return true;375 //-----------------------FOR DEBUG PURPOSES--------------------// 376 IJ.log("plugin finished TRUE on ISLET DEFAULT image "+nSlicesIN+" in \t \t \t"+ ((System.nanoTime() - initialTime)/1000000) +"ms"); 377 //-------------------------------------------------------------// 378 //-----------------------FOR DEBUG PURPOSES--------------------// 379 IJ.log("_"); 380 //-------------------------------------------------------------// 381 382 return true; 378 383 } 379 384 … … 400 405 } 401 406 407 @SuppressWarnings("static-access") 402 408 public static void logInImageJ(String message){ 403 409 IJ.log(message); 404 410 } 411 412 //next two methods are intended to be called from WiscScan's C++ components 413 @SuppressWarnings("static-access") 414 public static void createDebugTimeStartPoint(String message){ 415 debugTimeStart=System.nanoTime(); 416 IJ.log(message+" --START noted at \t \t \t"+ (debugTimeStart/1000000) +"ms"); 417 } 418 419 @SuppressWarnings("static-access") 420 public static void createDebugTimeCheckPoint(String message){ 421 IJ.log(message+" --CHECKPOINT noted at \t \t \t"+ ((System.nanoTime() - debugTimeStart)/1000000) +"ms"); 422 } 423 405 424 406 425 }
Note: See TracChangeset
for help on using the changeset viewer.