Changeset 7964


Ignore:
Timestamp:
04/13/12 14:46:17 (7 years ago)
Author:
avivekan
Message:

somewhat working flow...ratio still too slow

Location:
trunk/projects/flow-cytometry/src/main/java/loci/apps/flow
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/flow-cytometry/src/main/java/loci/apps/flow/Find_Particle_Areas.java

    r7955 r7964  
    77import ij.process.ImageProcessor; 
    88import ij.gui.GenericDialog; 
     9import ij.macro.Interpreter; 
    910import ij.measure.ResultsTable; 
    1011 
     
    4344                        boolean doTheSum= gd.getNextBoolean(); 
    4445 
    45         //              Interpreter.batchMode=true; 
     46                        Interpreter.batchMode=true; 
    4647 
    4748                        ImageProcessor duplicatedArg0 = arg0.duplicate(); 
     
    7172                        } 
    7273                                 
    73                         RoiManager roiMan = RoiManager.getInstance2(); 
    74                         if(roiMan.getCount()>0) 
    75                                 roiMan.runCommand("Measure"); 
     74 
    7675//                              IJ.runMacro("roiManager(\"Measure\")",null); 
    7776 
    7877                        if (doTheSum){ 
     78                                RoiManager roiMan = RoiManager.getInstance2(); 
     79                                if(roiMan.getCount()>0) 
     80                                        roiMan.runCommand("Measure"); 
    7981                                try{ 
    8082                                        int lengthOfRoiTable=roiMan.getCount(); 
  • trunk/projects/flow-cytometry/src/main/java/loci/apps/flow/FlowCyto.java

    r7955 r7964  
    33import ij.IJ; 
    44import ij.ImageJ; 
     5import ij.ImageJApplet; 
    56import ij.ImagePlus; 
    67import ij.ImageStack; 
     
    1920        private static ImageJ imagej; 
    2021        private static IJ IJ; 
    21         private static ImagePlus imp; 
    22         private static ImageStack stack; 
     22        private static ImagePlus imp, impBF, impIN; 
     23        private static ImageStack stack, stackBF, stackIN; 
     24        private static int nSlices, nSlicesBF, nSlicesIN; 
    2325        private static ByteProcessor bp; 
    2426        private static ColorModel theCM;         
    25         private static String s_Name, s_Experiment, s_Params, s_Date; 
     27        private static String s_Name, s_Experiment, s_Params, s_Date, tempImageName; 
    2628        private static double pixelMicronSquared; 
     29        private static RoiManager rman; 
     30        private static ResultsTable rtab; 
     31        private static byte[] dummyData; 
     32 
    2733 
    2834        @SuppressWarnings("static-access") 
     
    3036                IJ = new IJ(); 
    3137                imagej = IJ.getInstance(); 
     38                if(imagej==null || (imagej!=null && !imagej.isShowing())) 
     39                        new ImageJ(); 
    3240        } 
    3341 
    3442        public static void closeAllWindows() { 
    35                 imp.flush(); 
    36                 ResultsTable.getResultsTable().reset(); 
    37                 RoiManager.getInstance2().dispose(); 
    38                 WindowManager.closeAllWindows(); 
    39                 imagej.exitWhenQuitting(true); 
    40                 imagej.dispose();        
    41                 IJ = null; 
    42                 System.gc(); 
    43                 imagej.quit(); 
     43                imp.close(); 
     44                impBF.close(); 
     45                impIN.close(); 
     46                bp=null; 
     47                try{ 
     48                        ResultsTable.getResultsTable().reset(); 
     49                        RoiManager.getInstance2().dispose();             
     50                }catch(Exception e){ 
     51                        //fall through - happens when RoiManager isnt init'ed... 
     52                } 
     53 
     54                IJ = null;       
     55 
     56                try{ 
     57                        IJ.run("Close All"); 
     58                        WindowManager.closeAllWindows(); 
     59                        imagej.quit(); 
     60                        garbageCollect(); 
     61                }catch(Exception e){ 
     62                        garbageCollect(); 
     63                } 
    4464        } 
    4565 
     
    4767        public static void init(String mode, int width, int height, double pixelsPerMicron) { 
    4868                try{ 
    49                         s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format( 
    50                                         new java.util.Date()); 
     69        //              timer = new Timestamp(0); 
     70                        long initialTime = System.nanoTime(); 
     71                        nSlices=0; 
     72                        nSlicesBF=0; 
     73                        nSlicesIN=0; 
     74                        impBF=new ImagePlus(); 
     75                        impIN=new ImagePlus(); 
     76                        imp=new ImagePlus(); 
     77        //              s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format(new java.util.Date()); 
    5178                        byte[] r = new byte[256]; 
    52                         byte[] g = new byte[256]; 
    53                         byte[] b = new byte[256]; 
    54  
    5579                        for(int ii=0 ; ii<256 ; ii++) 
    56                                 r[ii] = g[ii] = b[ii] = (byte)ii; 
    57  
    58                         theCM = new IndexColorModel(8, 256, r,g,b); 
     80                                r[ii]=(byte)ii; 
     81 
     82                        theCM = new IndexColorModel(8, 256, r,r,r); 
     83                        ByteProcessor initBP = new ByteProcessor(width,height);                          
     84                        dummyData = new byte[width*height]; 
     85                        bp = new ByteProcessor(width,height,dummyData, theCM); 
     86                        bp.createImage(); 
     87 
    5988                        mode=mode.toLowerCase(); 
     89 
    6090                        if ("brightfield".equals(mode)) { 
    61                                 IJ.newImage("Brightfield Images", "8-bit", width, height, 0); 
    62 //                              IJ.runMacro("newImage(\"Brightfield Images\", \"8-bit\", "+width+", "+height+", 0)");                    
     91                                impBF = new ImagePlus("Brightfield images",     initBP); 
     92                                stackBF = new ImageStack(width,height, theCM); 
     93                                impBF.show(); 
     94                                impBF.unlock(); 
     95 
     96                                stackBF.addSlice("Slice "+nSlicesBF, bp); 
     97                                impBF.setStack("Brightfield images", stackBF); 
     98                                impBF.setSlice(1);       
     99                                impBF.unlock(); 
    63100                        } 
    64101                        else if ("intensity".equals(mode)) { 
    65                                 IJ.newImage("Intensity Images", "8-bit", width, height, 0); 
    66 //                              IJ.runMacro("newImage(\"Intensity Images\", \"8-bit\", "+width+", "+height+", 0)"); 
     102                                impIN = new ImagePlus("Intensity images", initBP); 
     103                                stackIN = new ImageStack(width,height, theCM); 
     104                                impIN.show(); 
     105                                impIN.unlock(); 
     106 
     107                                stackIN.addSlice("Slice "+nSlicesIN, bp); 
     108                                impIN.setStack("Intensity images", stackIN); 
     109                                impIN.setSlice(1); 
     110                                impIN.unlock(); 
    67111                        } 
    68112                        else if ("both".equals(mode)) { 
    69                                 IJ.newImage("Brightfield Images", "8-bit", width, height, 0); 
    70                                 IJ.newImage("Intensity Images", "8-bit", width, height, 0); 
    71 //                              IJ.runMacro("newImage(\"Brightfield Images\", \"8-bit\", "+width+", "+height+", 0)"); 
    72         //                      IJ.runMacro("newImage(\"Intensity Images\", \"8-bit\", "+width+", "+height+", 0)"); 
     113                                impBF = new ImagePlus("Brightfield images",     initBP); 
     114                                stackBF = new ImageStack(width,height, theCM); 
     115                                impBF.show(); 
     116                                impBF.unlock(); 
     117 
     118                                stackBF.addSlice("Slice "+nSlicesBF, bp); 
     119                                impBF.setStack("Brightfield images", stackBF); 
     120                                impBF.setSlice(1);       
     121                                impBF.unlock(); 
     122 
     123                                impIN = new ImagePlus("Intensity images", initBP); 
     124                                stackIN = new ImageStack(width,height, theCM); 
     125                                impIN.show(); 
     126                                impIN.unlock(); 
     127 
     128                                stackIN.addSlice("Slice "+nSlicesIN, bp); 
     129                                impIN.setStack("Intensity images", stackIN); 
     130                                impIN.setSlice(1); 
     131                                impIN.unlock(); 
    73132                        } 
    74133                        else { 
    75                                 IJ.newImage("Islet Images", "8-bit", width, height, 0); 
    76 //                              IJ.runMacro("newImage(\"Islet Images\", \"8-bit\", "+width+", "+height+", 0)"); 
     134                                imp = new ImagePlus("Islet images",     initBP); 
     135                                stack = new ImageStack(width,height, theCM); 
     136                                imp.show(); 
     137                                imp.unlock(); 
     138 
     139                                stack.addSlice("Slice "+nSlices, bp); 
     140                                imp.setStack("Islet images", stack); 
     141                                imp.setSlice(1);         
     142                                imp.unlock(); 
    77143                        } 
    78144                        if (pixelsPerMicron > 0){  
    79145                                pixelMicronSquared = pixelsPerMicron*pixelsPerMicron; 
    80                                 IJ.run("Set Scale...", "distance="+width+" known="+((double)width/pixelsPerMicron) +" pixel=1 unit=microns");            
     146                                IJ.run("Set Scale...", "distance="+width+" known="+((double)width/pixelsPerMicron) +" pixel=1 unit=microns"); 
     147                                //-----------------------FOR DEBUG PURPOSES--------------------// 
     148                                IJ.log("ImageJ started for "+mode+" mode in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     149                                //-------------------------------------------------------------// 
    81150                        } 
    82151                        else pixelMicronSquared = 0.180028*0.180028; 
     
    96165        public static void showImage(String mode, int width, int height, byte[] imageData) { 
    97166                try{ 
     167                        long initialTime = System.nanoTime(); 
    98168                        bp = new ByteProcessor(width,height,imageData, theCM); 
    99                         //              String mode = "brightfield"; 
    100                         if ("brightfield".equalsIgnoreCase(mode)) { 
    101                                 IJ.selectWindow("Brightfield Images"); 
    102 //                              IJ.run("selectWindow(\"Brightfield Images\")"); 
    103                         } 
    104                         else if ("intensity".equalsIgnoreCase(mode)) { 
    105                                 IJ.selectWindow("Intensity Images"); 
    106 //                              IJ.run("selectWindow(\"Intensity Images\")"); 
     169                        bp.createImage(); 
     170                        mode = mode.toLowerCase(); 
     171                        if ("brightfield".equals(mode)) { 
     172                                stackBF.addSlice("Slice "+nSlicesBF, bp); 
     173                                impBF.setStack("Brightfield Images", stackBF); 
     174                                impBF.setSlice(stackBF.getSize()); 
     175                                impBF.show(); 
     176                                impBF.unlock(); 
     177                                nSlicesBF++; 
     178                                //-----------------------FOR DEBUG PURPOSES--------------------// 
     179                                IJ.log("brightfield image "+nSlicesBF+" displayed in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     180                                //-------------------------------------------------------------// 
     181                        } 
     182                        else if ("intensity".equals(mode)) { 
     183                                stackIN.addSlice("Slice "+nSlicesIN, bp); 
     184                                impIN.setStack("Intensity Images", stackIN); 
     185                                impIN.setSlice(stackIN.getSize()); 
     186                                impIN.show();            
     187                                impIN.unlock(); 
     188                                nSlicesIN++; 
     189                                //-----------------------FOR DEBUG PURPOSES--------------------// 
     190                                IJ.log("intensity image "+nSlicesIN+" displayed in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     191                                //-------------------------------------------------------------// 
    107192                        } 
    108193                        else { 
    109                                 IJ.selectWindow("Islet Images"); 
    110 //                              IJ.run("selectWindow(\"Islet Images\")"); 
    111                         } 
    112                         IJ.run("Add Slice"); 
    113                         imp.setImage(bp.createImage()); 
    114                         //imp.show(); 
     194                                stack.addSlice("Slice "+nSlices, bp); 
     195                                imp.setStack("Islet Images", stack); 
     196                                imp.setSlice(stack.getSize()); 
     197                                imp.show(); 
     198                                imp.unlock(); 
     199                                nSlices++; 
     200                        } 
     201 
    115202                } catch(Exception e){ 
    116                         System.out.println("Error at showImage method " + e.getLocalizedMessage()); 
     203                        System.err.println("Error at showImage method " + e.getLocalizedMessage()); 
    117204                } 
    118205        } 
     
    120207        @SuppressWarnings("static-access") 
    121208        public static float[] getParticleAreas(boolean isIntensityImage, boolean excludeOnEdge, double thresholdMin, int sizeMin){ 
    122  
    123                 float[] retVal = new float[1]; 
     209                long initialTime = System.nanoTime(); 
    124210                Interpreter.batchMode=true; 
    125                 try{ 
    126  
    127                         if(isIntensityImage){ 
    128                                 if(excludeOnEdge) IJ.run("Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
    129                                 else IJ.run("Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     211                 
     212                try{ 
     213 
     214                        if(isIntensityImage){                            
     215                                try{ 
     216                                        if(excludeOnEdge) IJ.run(impIN, "Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     217                                        else IJ.run(impIN, "Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     218                                        //-----------------------FOR DEBUG PURPOSES--------------------// 
     219                                        IJ.log("plugin finished on intensity image "+nSlicesIN+" in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     220                                        //-------------------------------------------------------------// 
     221                                 
     222                                }catch(Exception e){ 
     223                                        if(excludeOnEdge)IJ.run(imp, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     224                                        else IJ.run(imp, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     225                                } 
     226                                //                              if(excludeOnEdge) IJ.run("Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     227                                //                              else IJ.run("Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
    130228                        } 
    131229                        else { 
    132                                 if(excludeOnEdge)IJ.run("Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
    133                                 else IJ.run("Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
    134                         } 
    135  
    136                         RoiManager rman = RoiManager.getInstance2(); 
    137                         ResultsTable rtab = ResultsTable.getResultsTable(); 
    138  
    139                         int lengthOfRoiTable = rman.getCount(); 
    140  
    141                         if (lengthOfRoiTable!=0){ 
    142  
    143                                 retVal = new float[lengthOfRoiTable]; 
     230                                try{ 
     231                                        if(excludeOnEdge)IJ.run(impBF, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     232                                        else IJ.run(impBF, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     233                                        //-----------------------FOR DEBUG PURPOSES--------------------// 
     234                                        IJ.log("plugin finished on brightfield image "+nSlicesBF+" in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     235                                        //-------------------------------------------------------------// 
     236                                 
     237                                }catch(Exception e){ 
     238                                        if(excludeOnEdge)IJ.run(imp, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     239                                        else IJ.run(imp, "Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     240                                } 
     241                                //                              if(excludeOnEdge)IJ.run("Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     242                                //                              else IJ.run("Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
     243                        } 
     244 
     245                        rman = RoiManager.getInstance2(); 
     246                        if(rman.getCount()>0){ 
     247                                rman.runCommand("Measure"); 
     248                                rtab = ResultsTable.getResultsTable(); 
     249 
     250                                //                      int lengthOfRoiTable = rman.getCount(); 
     251 
     252                                //                      if (lengthOfRoiTable!=0){ 
     253 
     254                                //                      retVal = new float[lengthOfRoiTable]; 
    144255                                float[] areasArray = rtab.getColumn(rtab.getColumnIndex("Area")); 
    145256 
    146257                                if(areasArray!=null){ 
    147                                         for (int i = 0; i < lengthOfRoiTable; i++){ 
    148                                                 retVal[i]=areasArray[i]; 
    149                                         } 
    150                                         rman.dispose(); 
     258                                        //                              for (int i = 0; i < lengthOfRoiTable; i++){ 
     259                                        //                                      retVal[i]=areasArray[i]; 
     260                                        //                              } 
     261                                        //                      rman.dispose(); 
    151262                                        rtab.reset(); 
    152                                         return retVal; 
     263                                        rman.runCommand("Deselect"); 
     264                                        rman.runCommand("Delete"); 
     265 
     266                                        //-----------------------FOR DEBUG PURPOSES--------------------// 
     267                                        IJ.log("particle areas calculated in "+ ((System.nanoTime() - initialTime)/1000) +"us"); 
     268                                        //-------------------------------------------------------------// 
     269                                        //                              return retVal; 
     270                                        return areasArray; 
    153271                                } 
    154272 
    155273                                rman.runCommand("Deselect"); 
    156                                 rman.runCommand("Delete"); 
     274                                rman.runCommand("Delete");               
    157275                        } 
    158276                }catch (Exception e){ 
    159277                        //fall through 
    160278                } 
     279 
     280                float[] defaultVal = new float[1]; 
    161281                Interpreter.batchMode=false; 
    162                 retVal[0]=0; 
    163                 return retVal; 
     282                defaultVal[0]=0; 
     283                return defaultVal; 
    164284        } 
    165285 
  • trunk/projects/flow-cytometry/src/main/java/loci/apps/flow/FlowCytometry.java

    r7955 r7964  
    205205        } 
    206206 
    207  
    208  
    209207        public static void showImage(String mode, int width, int height, byte[] imageData) { 
    210                 try{ 
    211                         bp = new ByteProcessor(width,height,imageData, theCM); 
    212                         //              String mode = "brightfield"; 
    213                         if ("brightfield".equalsIgnoreCase(mode)) { 
    214                                 IJ.run("selectWindow(\"Brightfield Images\")"); 
    215                         } 
    216                         else if ("intensity".equalsIgnoreCase(mode)) { 
    217                                 IJ.run("selectWindow(\"Intensity Images\")"); 
    218                         } 
    219                         else { 
    220                                 IJ.run("selectWindow(\"Islet Images\")"); 
    221                         } 
    222                         IJ.run("Add Slice"); 
    223                         imp.setImage(bp.createImage()); 
    224                         imp.show(); 
    225                 } catch(Exception e){ 
    226                         System.out.println("Error at showImage method " + e.getLocalizedMessage()); 
    227                 } 
    228                 /*              bp.createImage(); 
     208                //bp = new ByteProcessor(width,height,imageData, 
     209                //  ImageTools.makeColorModel(1, DataBuffer.TYPE_BYTE)); 
     210                bp = new ByteProcessor(width,height,imageData, theCM); 
     211                bp.createImage(); 
    229212                stack.addSlice("Slice "+nSlices, bp); 
    230                 imp.setStack("Islet images", stack); 
     213                imp.setStack(mode, stack); 
    231214                imp.setSlice(stack.getSize()); 
    232215                imp.show(); 
     
    238221                        ImageWindow stackwin = imp.getWindow(); 
    239222                        scroll = stackwin.getComponent(1); 
    240  
    241                         ComponentListener l = new ComponentListener() { 
    242                                 @SuppressWarnings("synthetic-access") 
    243                                 public void adjustmentValueChanged(AdjustmentEvent arg0) { 
    244                                         try { 
    245                                                 int slideNum = 
    246                                                                 ((Scrollbar) imp.getWindow().getComponent(1)).getValue(); 
    247                                                 //for the detected particles window 
    248                                                 if (showParticles) { 
    249                                                         d = new Detector(resolutionWidth, 
    250                                                                         intensityThreshold, areaThresholdInPixels); 
    251                                                         d.findParticles(stack.getProcessor(slideNum)); 
    252                                                         d.crunchArray(); 
    253                                                         Detector.displayImage(d.getFloodArray()); 
    254                                                 } 
    255  
    256                                                 //for the graph 
    257                                                 //IJ.log("This is slide "+slideNum+ 
    258                                                 //  " and particle numbers on this slide go from "+ 
    259                                                 //  sliceBegin[slideNum]+" to "+sliceEnd[slideNum]); 
    260                                                 //IJ.log(Integer.toString(((Scrollbar) 
    261                                                 //  Intensity_.this.imp.getWindow().getComponent(1)).getValue())); 
    262                                                 FlowCytometry.data_ref.setData( 
    263                                                                 newestGetData(slideNum, cumulative, intensity, fn)); 
    264                                                 FlowCytometry.display.reDisplayAll(); 
    265                                                 //Intensity_.this.data_ref.setData( 
    266                                                 //  getData(imp.getCurrentSlice(), cumulative, intensity, fn)); 
    267                                         } 
    268                                         catch (RemoteException e) { 
    269                                                 // ignore exceptions 
    270                                         } 
    271                                         catch (VisADException e) { 
    272                                                 // ignore exceptions 
    273                                         } 
    274                  */                             } 
    275  
    276         /*                              @Override 
    277                                 public void componentHidden(ComponentEvent e) { 
    278                                         // TODO Auto-generated method stub 
    279  
    280                                 } 
    281  
    282                                 @Override 
    283                                 public void componentMoved(ComponentEvent e) { 
    284                                         // TODO Auto-generated method stub 
    285  
    286                                 } 
    287  
    288                                 @Override 
    289                                 public void componentResized(ComponentEvent e) { 
    290                                         // TODO Auto-generated method stub 
    291  
    292                                 } 
    293  
    294                                 @Override 
    295                                 public void componentShown(ComponentEvent e) { 
    296                                         // TODO Auto-generated method stub 
    297  
    298                                 } 
    299                         }; 
    300                         scroll.addComponentListener((ComponentListener) l); 
    301                 } 
    302         } 
    303          */ 
     223                } 
     224                nSlices++; 
     225        } 
     226 
    304227        public static void initVars() { 
    305228                maxArea=Double.MIN_VALUE; 
     
    328251 
    329252        public static void init(String mode, int width, int height, double pixelsPerMicron) { 
    330                 try{ 
    331253                setResolution(width, height); 
    332254                s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format( 
    333255                                new java.util.Date()); 
     256 
    334257                byte[] r = new byte[256]; 
    335258                byte[] g = new byte[256]; 
     
    340263 
    341264                theCM = new IndexColorModel(8, 256, r,g,b); 
    342                 mode=mode.toLowerCase(); 
    343                 if ("brightfield".equals(mode)) { 
    344                         IJ.runMacro("newImage(\"Brightfield Images\", \"8-bit\", "+width+", "+height+", 0)");                    
    345                 } 
    346                 else if ("intensity".equals(mode)) { 
    347                         IJ.runMacro("newImage(\"Intensity Images\", \"8-bit\", "+width+", "+height+", 0)"); 
    348                 } 
    349                 else if ("both".equals(mode)) { 
    350                         IJ.runMacro("newImage(\"Brightfield Images\", \"8-bit\", "+width+", "+height+", 0)"); 
    351                         IJ.runMacro("newImage(\"Intensity Images\", \"8-bit\", "+width+", "+height+", 0)"); 
    352                 } 
    353                 else { 
    354                         IJ.runMacro("newImage(\"Islet Images\", \"8-bit\", "+width+", "+height+", 0)"); 
    355                 } 
    356                 if (pixelsPerMicron > 0){  
    357                         pixelMicronSquared = pixelsPerMicron*pixelsPerMicron; 
    358                         IJ.run("Set Scale...", "distance="+width+" known="+((double)width/pixelsPerMicron) +" pixel=1 unit=microns");            
    359                 } 
    360                 else pixelMicronSquared = 0.149*0.149; 
    361                 } catch(Exception e){ 
    362                         System.out.println("Exception at init mehtod " + e.getLocalizedMessage()); 
    363                 } 
    364  
    365  
    366                 /*              setResolution(width, height); 
    367                 s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format( 
    368                                 new java.util.Date()); 
    369  
    370                 byte[] r = new byte[256]; 
    371                 byte[] g = new byte[256]; 
    372                 byte[] b = new byte[256]; 
    373  
    374                 for(int ii=0 ; ii<256 ; ii++) 
    375                         r[ii] = g[ii] = b[ii] = (byte)ii; 
    376  
    377                 theCM = new IndexColorModel(8, 256, r,g,b); 
    378                 imp = new ImagePlus("Islet images", 
     265                imp = new ImagePlus(mode+" images", 
    379266                                new ByteProcessor(resolutionWidth,resolutionHeight)); 
    380267                stack = new ImageStack(resolutionWidth, resolutionHeight, theCM); 
    381268                imp.show(); 
    382  
    383                 Detector.createImageHolder(resolutionWidth, resolutionHeight); 
    384269 
    385270                imp.unlock(); 
     
    396281                bp.createImage(); 
    397282                stack.addSlice("Slice "+nSlices, bp); 
    398                 imp.setStack("Islet images", stack); 
    399  
     283                imp.setStack(mode+" images", stack); 
    400284                imp.setSlice(1); 
    401  
    402                 try { 
    403                         // Display initialization 
    404  
    405                         display = new DisplayImplJ2D("Graph Display"); 
    406                         data_ref = new DataReferenceImpl("data_ref"); 
    407                         data_ref.setData(null); 
    408                         display.addReference(data_ref); 
    409                         display.getGraphicsModeControl().setScaleEnable(true); 
    410                         display.getGraphicsModeControl().setPointSize(3); 
    411                         setAxes(0,1); 
    412  
    413                         frame = new JFrame("Graph Window"); 
    414                         frame.setLayout(new BorderLayout()); 
    415  
    416                         CBcumulative = new JCheckBox("Cumulative"); 
    417                         CBcumulative.setMnemonic(KeyEvent.VK_G); 
    418                         JPanel bottomPanel = new JPanel(); 
    419                         bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.LINE_AXIS)); 
    420                         bottomPanel.add(CBcumulative); 
    421  
    422                         frame.getContentPane().add(display.getComponent(), BorderLayout.CENTER); 
    423                         frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH); 
    424  
    425                         ItemListener CBitemListener = new ItemListener() { 
    426                                 @SuppressWarnings("synthetic-access") 
    427                                 @Override 
    428                                 public void itemStateChanged(ItemEvent itemEvent) { 
    429                                         cumulative = itemEvent.getStateChange() == ItemEvent.SELECTED; 
    430                                         try { 
    431                                                 FlowCytometry.data_ref.setData(newestGetData( 
    432                                                                 imp.getCurrentSlice(), cumulative, intensity, fn)); 
    433                                                 FlowCytometry.display.reDisplayAll(); 
    434                                         } 
    435                                         catch (RemoteException e) { 
    436                                                 // ignore exceptions 
    437                                         } 
    438                                         catch (VisADException e) { 
    439                                                 // ignore exceptions 
    440                                         } 
    441                                 } 
    442                         }; 
    443                         CBcumulative.addItemListener(CBitemListener); 
    444  
    445                         imp.setSlice(1); 
    446                         frame.setSize(600, 600); 
    447                         frame.setVisible(true); 
    448                 } 
    449                 catch (VisADException e) { 
    450                         IJ.log("VisAD Exception in init: "+e.getMessage()); 
    451                 } 
    452                 catch (RemoteException re) { 
    453                         IJ.log("Remote Exception: "+re.getMessage()); 
    454                 } 
    455                  */ 
    456         } 
    457  
     285        } 
    458286        public static void setAxes(int x, int y) { 
    459287                // 0 - Intensity 
Note: See TracChangeset for help on using the changeset viewer.