Changeset 7932


Ignore:
Timestamp:
03/23/12 18:02:20 (8 years ago)
Author:
avivekan
Message:

refactoring (1 of many to come)

File:
1 edited

Legend:

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

    r7920 r7932  
    4141import ij.WindowManager; 
    4242import ij.gui.ImageWindow; 
     43import ij.macro.Interpreter; 
    4344import ij.measure.Measurements; 
    4445import ij.measure.ResultsTable; 
     
    5253import java.awt.BorderLayout; 
    5354import java.awt.Component; 
     55import java.awt.Frame; 
    5456import java.awt.Scrollbar; 
    5557import java.awt.event.AdjustmentEvent; 
     
    204206 
    205207 
    206         /* 
    207         public static void showImageForBrightfield(int width, int height, byte[] imageData) { 
    208                 //bp = new ByteProcessor(width,height,imageData, 
    209                 //  ImageTools.makeColorModel(1, DataBuffer.TYPE_BYTE)); 
    210                 bp2 = new ByteProcessor(width,height,imageData, theCM); 
    211                 bp2.createImage(); 
    212                 stack2.addSlice("Slice2 "+nSlices2, bp2); 
    213                 imp2.setStack("Islet images 2", stack2); 
    214                 imp2.setSlice(stack2.getSize()); 
    215                 imp2.show(); 
    216  
    217                 if (nSlices2 == 1) { 
    218                         stack2.deleteSlice(1); 
    219                 } 
    220                 else if (nSlices2 == 2) { 
    221                         ImageWindow stackwin = imp2.getWindow(); 
    222                         scroll2 = (Scrollbar) stackwin.getComponent(1); 
    223  
    224                         AdjustmentListener l = new AdjustmentListener() { 
     208 
     209        public static void showImage(String mode, int width, int height, byte[] imageData) { 
     210                 
     211                bp = new ByteProcessor(width,height,imageData, theCM); 
     212//              String mode = "brightfield"; 
     213                switch (mode){ 
     214                        case "brightfield": 
     215                                IJ.run("selectWindow(\"Brightfield Images\")");                  
     216                                break; 
     217                        case "intensity":  
     218                                IJ.run("selectWindow(\"Intensity Images\")"); 
     219                                break; 
     220                        default:  
     221                                IJ.run("selectWindow(\"Islet Images\")"); 
     222                                break;           
     223                } 
     224                IJ.run("Add Slice"); 
     225                imp.setImage(bp.createImage()); 
     226                imp.show(); 
     227                 
     228/*              bp.createImage(); 
     229                stack.addSlice("Slice "+nSlices, bp); 
     230                imp.setStack("Islet images", stack); 
     231                imp.setSlice(stack.getSize()); 
     232                imp.show(); 
     233 
     234                if (nSlices == 1) { 
     235                        stack.deleteSlice(1); 
     236                } 
     237                else if (nSlices == 2) { 
     238                        ImageWindow stackwin = imp.getWindow(); 
     239                        scroll = stackwin.getComponent(1); 
     240                 
     241                        ComponentListener l = new ComponentListener() { 
    225242                                @SuppressWarnings("synthetic-access") 
    226                                 @Override 
    227243                                public void adjustmentValueChanged(AdjustmentEvent arg0) { 
    228244                                        try { 
    229245                                                int slideNum = 
    230                                                                 ((Scrollbar) imp2.getWindow().getComponent(1)).getValue(); 
     246                                                                ((Scrollbar) imp.getWindow().getComponent(1)).getValue(); 
    231247                                                //for the detected particles window 
    232                                                 if (showParticles2) { 
    233                                                         d2 = new Detector(resolutionWidth, 
     248                                                if (showParticles) { 
     249                                                        d = new Detector(resolutionWidth, 
    234250                                                                        intensityThreshold, areaThresholdInPixels); 
    235                                                         d2.findParticles(stack2.getProcessor(slideNum)); 
    236                                                         d2.crunchArray(); 
    237                                                         Detector.displayImage(d2.getFloodArray()); 
     251                                                        d.findParticles(stack.getProcessor(slideNum)); 
     252                                                        d.crunchArray(); 
     253                                                        Detector.displayImage(d.getFloodArray()); 
    238254                                                } 
    239255 
     
    256272                                                // ignore exceptions 
    257273                                        } 
    258                                 } 
    259                         }; 
    260                         scroll2.addAdjustmentListener(l); 
    261                 } 
    262         } 
    263          */ 
    264         public static void showImage(int width, int height, byte[] imageData) { 
    265                 //bp = new ByteProcessor(width,height,imageData, 
    266                 //  ImageTools.makeColorModel(1, DataBuffer.TYPE_BYTE)); 
    267                 bp = new ByteProcessor(width,height,imageData, theCM); 
    268                 bp.createImage(); 
    269                 stack.addSlice("Slice "+nSlices, bp); 
    270                 imp.setStack("Islet images", stack); 
    271                 imp.setSlice(stack.getSize()); 
    272                 imp.show(); 
    273  
    274                 if (nSlices == 1) { 
    275                         stack.deleteSlice(1); 
    276                 } 
    277                 else if (nSlices == 2) { 
    278                         ImageWindow stackwin = imp.getWindow(); 
    279                         scroll = stackwin.getComponent(1); 
    280  
    281                         ComponentListener l = new ComponentListener() { 
    282                                 @SuppressWarnings("synthetic-access") 
    283                                 public void adjustmentValueChanged(AdjustmentEvent arg0) { 
    284                                         try { 
    285                                                 int slideNum = 
    286                                                                 ((Scrollbar) imp.getWindow().getComponent(1)).getValue(); 
    287                                                 //for the detected particles window 
    288                                                 if (showParticles) { 
    289                                                         d = new Detector(resolutionWidth, 
    290                                                                         intensityThreshold, areaThresholdInPixels); 
    291                                                         d.findParticles(stack.getProcessor(slideNum)); 
    292                                                         d.crunchArray(); 
    293                                                         Detector.displayImage(d.getFloodArray()); 
    294                                                 } 
    295  
    296                                                 //for the graph 
    297                                                 //IJ.log("This is slide "+slideNum+ 
    298                                                 //  " and particle numbers on this slide go from "+ 
    299                                                 //  sliceBegin[slideNum]+" to "+sliceEnd[slideNum]); 
    300                                                 //IJ.log(Integer.toString(((Scrollbar) 
    301                                                 //  Intensity_.this.imp.getWindow().getComponent(1)).getValue())); 
    302                                                 FlowCytometry.data_ref.setData( 
    303                                                                 newestGetData(slideNum, cumulative, intensity, fn)); 
    304                                                 FlowCytometry.display.reDisplayAll(); 
    305                                                 //Intensity_.this.data_ref.setData( 
    306                                                 //  getData(imp.getCurrentSlice(), cumulative, intensity, fn)); 
    307                                         } 
    308                                         catch (RemoteException e) { 
    309                                                 // ignore exceptions 
    310                                         } 
    311                                         catch (VisADException e) { 
    312                                                 // ignore exceptions 
    313                                         } 
    314                                 } 
    315  
    316                                 @Override 
     274*/                              } 
     275 
     276/*                              @Override 
    317277                                public void componentHidden(ComponentEvent e) { 
    318278                                        // TODO Auto-generated method stub 
    319                                          
     279 
    320280                                } 
    321281 
     
    323283                                public void componentMoved(ComponentEvent e) { 
    324284                                        // TODO Auto-generated method stub 
    325                                          
     285 
    326286                                } 
    327287 
     
    329289                                public void componentResized(ComponentEvent e) { 
    330290                                        // TODO Auto-generated method stub 
    331                                          
     291 
    332292                                } 
    333293 
     
    335295                                public void componentShown(ComponentEvent e) { 
    336296                                        // TODO Auto-generated method stub 
    337                                          
     297 
    338298                                } 
    339299                        }; 
     
    341301                } 
    342302        } 
    343  
     303*/ 
    344304        public static void initVars() { 
    345305                maxArea=Double.MIN_VALUE; 
     
    367327        } 
    368328 
    369         public static void init(int width, int height, double pixelsPerMicron) { 
     329        public static void init(String mode, int width, int height, double pixelsPerMicron) { 
     330 
    370331                setResolution(width, height); 
     332                s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format( 
     333                                new java.util.Date()); 
     334                byte[] r = new byte[256]; 
     335                byte[] g = new byte[256]; 
     336                byte[] b = new byte[256]; 
     337 
     338                for(int ii=0 ; ii<256 ; ii++) 
     339                        r[ii] = g[ii] = b[ii] = (byte)ii; 
     340 
     341                theCM = new IndexColorModel(8, 256, r,g,b); 
     342//              String mode = "brightfield"; 
     343                mode=mode.toLowerCase(); 
     344                switch (mode){ 
     345                        case "brightfield": IJ.newImage("Brightfield Images", "8-bit", width, height, 0); 
     346                                break; 
     347                        case "intensity": IJ.newImage("Intensity Images", "8-Bit", width, height, 0); 
     348                                break; 
     349                        case "both":  
     350                                IJ.newImage("Brightfield Images", "8-bit", width, height, 0); 
     351                                IJ.newImage("Intensity Images", "8-Bit", width, height, 0); 
     352                                break; 
     353                        default: IJ.newImage("Islet Images", "8-Bit", width, height, 0); 
     354                                break;           
     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                 
     362 
     363 
     364                /*              setResolution(width, height); 
    371365                s_Date = new java.text.SimpleDateFormat("MM.dd.yyyy hh:mm:ss").format( 
    372366                                new java.util.Date()); 
     
    457451                        IJ.log("Remote Exception: "+re.getMessage()); 
    458452                } 
     453                 */ 
    459454        } 
    460455 
     
    671666 
    672667                try{ 
     668 
    673669                        if(isIntensityImage){ 
    674670                                if(excludeOnEdge) IJ.run("Find Particle Areas", "channel=Intensity threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+" exclude_particles_on_edge"); 
     
    679675                                else IJ.run("Find Particle Areas", "channel=Brightfield threshold_minimum="+thresholdMin+" size_minimum="+sizeMin+""); 
    680676                        } 
    681  
    682                         RoiManager rman = RoiManager.getInstance(); 
     677                        Interpreter.batchMode=true; 
     678                        RoiManager rman = RoiManager.getInstance2(); 
    683679                        ResultsTable rtab = ResultsTable.getResultsTable(); 
    684680 
     
    686682 
    687683                        if (lengthOfRoiTable!=0){ 
    688                                  
     684 
    689685                                retVal = new float[lengthOfRoiTable]; 
    690686                                float[] areasArray = rtab.getColumn(rtab.getColumnIndex("Area")); 
     
    694690                                                retVal[i]=areasArray[i]; 
    695691                                        } 
     692                                        rman.dispose(); 
     693                                        //                                      rman.close(); 
     694                                        rtab.reset(); 
     695                                        System.gc(); 
     696                                        Interpreter.batchMode=false; 
    696697                                        return retVal; 
    697698                                } 
    698                                  
     699 
    699700                                rman.runCommand("Deselect"); 
    700701                                rman.runCommand("Delete"); 
     
    703704                        //fall through 
    704705                } 
     706                System.gc(); 
     707                Interpreter.batchMode=false; 
    705708                retVal[0]=0; 
    706709                return retVal; 
     
    11661169                else Detector.impParticles.hide(); 
    11671170        } 
    1168          
     1171 
    11691172        public static void openFile(String filename, double PixelsPerMicron) throws IOException { 
    11701173                setPixelMicronSquared(PixelsPerMicron); 
    11711174                startImageJ(); 
    1172                 IJ.open(filename); 
     1175                IJ.run("Bio-Formats Importer", "open=["+filename+"] autoscale color_mode=Default view=Hyperstack stack_order=XYCZT"); 
    11731176        } 
    11741177 
     
    11781181                int size = imagePlus.getWidth(); 
    11791182 
    1180 //              double PixelsPerMicron=Math.sqrt(pixelMicronSquared); 
     1183                //              double PixelsPerMicron=Math.sqrt(pixelMicronSquared); 
    11811184                // Close the other open windows 
    11821185                if (frame != null) frame.dispose(); 
    11831186                imagePlus.close(); 
    11841187 
    1185 //              init(size, size, PixelsPerMicron); 
     1188                //              init(size, size, PixelsPerMicron); 
    11861189                showParticles(false); 
    11871190                for (int i=1; i<=imageStack.getSize(); i++) { 
    11881191                        byte[] imageData = (byte[]) imageStack.getPixels(i); 
    1189 //                      incrementSlices(); 
    1190                         showImage(size, size, imageData); 
    1191 //                      newestProcessFrame(i); 
    1192 //                      updateGraph(); 
    1193                 } 
    1194  
    1195 //              saveValues(filename+".values"); 
     1192                        //                      incrementSlices(); 
     1193                        showImage("", size, size, imageData); 
     1194                        //                      newestProcessFrame(i); 
     1195                        //                      updateGraph(); 
     1196                } 
     1197 
     1198                //              saveValues(filename+".values"); 
    11961199        } 
    11971200 
Note: See TracChangeset for help on using the changeset viewer.