Changeset 7876 for trunk


Ignore:
Timestamp:
01/29/12 21:48:02 (8 years ago)
Author:
avivekan
Message:

java code change to flow...again...edited plugin after meeting with Johannas

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

Legend:

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

    r7871 r7876  
    642642        public static int[] getBFParticleAreas(){ 
    643643 
    644                 //      IJ.runPlugIn("bf ParticleAreasPlugin", null); 
    645                 /*              ImageProcessor imgProc = img.getProcessor(); 
    646  
    647                 imgProc.findEdges(); 
    648                 imgProc.findEdges(); 
    649  
    650                 GaussianBlur gb = new GaussianBlur(); 
    651                 gb.blur(imgProc, 5); 
    652  
    653                 AutoThresholder thresh = new AutoThresholder(); 
    654                 thresh.getThreshold(AutoThresholder.Method.valueOf("Minimum"), imgProc.getHistogram()); 
    655  
    656                 RoiManager rm = new RoiManager(true); 
    657                 ResultsTable rt = new ResultsTable(); 
    658                 img = new ImagePlus("thresholdedImage", imgProc); 
    659                 ParticleAnalyzer pa = new ParticleAnalyzer(ParticleAnalyzer.ADD_TO_MANAGER | ParticleAnalyzer.CLEAR_WORKSHEET | ParticleAnalyzer.EXCLUDE_EDGE_PARTICLES | ParticleAnalyzer.INCLUDE_HOLES, Measurements.AREA, rt, 0, Double.POSITIVE_INFINITY, 0, 1); 
    660                 int lenghtOfRoiTable = 0; 
    661  
    662                 if (pa.analyze(img)){ 
    663                         lenghtOfRoiTable = rm.getRoisAsArray().length; 
    664  
    665                         int[] retVal = new int[lenghtOfRoiTable]; 
    666                         double[] temp = rt.getColumnAsDoubles(0); 
    667  
    668                         for (int i = 0; i < lenghtOfRoiTable; i++){ 
    669                                 retVal[i]=(int)temp[i]; 
    670                         } 
    671  
    672                         rm.dispose(); 
    673                         rt.reset(); 
    674                         img.flush(); 
    675                         img.close(); 
    676  
    677                         return retVal; 
    678                 } 
    679                  */ 
    680  
    681                 int[] retVal = null; 
     644                int[] retVal = new int[1]; 
    682645 
    683646                try{ 
    684647//                      ImagePlus currentImg = WindowManager.getCurrentImage(); 
    685                         IJ.run("bf ParticleAreasPlugin"); 
    686  
    687                         RoiManager rm = RoiManager.getInstance(); 
     648//                      IJ.run("bf ParticleAreasPlugin"); 
     649                        IJ.runPlugIn("bf ParticleAreasPlugin", null); 
     650//                      RoiManager rm = RoiManager.getInstance(); 
    688651                        ResultsTable rt = ResultsTable.getResultsTable(); 
    689652 
    690                         int lengthOfRoiTable = rm.getRoisAsArray().length; 
    691  
    692                         if (lengthOfRoiTable!=(Integer)null ){ 
     653                        int lengthOfRoiTable = RoiManager.getInstance().getCount(); 
     654                         
     655                        if (lengthOfRoiTable!=0){ 
    693656 
    694657                                retVal = new int[lengthOfRoiTable]; 
     
    699662                                                retVal[i]=(int)temp[i]; 
    700663                                        } 
    701  
    702 //                                      rm.dispose(); 
    703 //                                      rt.reset(); 
    704 //                                      currentImg.flush(); 
    705 //                                      currentImg.close(); 
    706  
    707664                                        return retVal; 
    708665                                } 
    709666                        } 
    710667                }catch (Exception e){ 
    711  
     668                        //fall through 
    712669                } 
    713670                retVal[0]=0; 
  • trunk/projects/flow-cytometry/src/main/java/loci/apps/flow/bf_ParticleAreasPlugin.java

    r7871 r7876  
    33import ij.*; 
    44import ij.plugin.*; 
     5import ij.plugin.filter.PlugInFilter; 
    56import ij.plugin.frame.*; 
     7import ij.process.ImageProcessor; 
    68import ij.measure.*; 
    79import ij.macro.*; 
    810 
    9 public class bf_ParticleAreasPlugin implements PlugIn { 
     11//make plugin filter 
    1012 
    11         public void run(String arg) { 
    12 //        ImagePlus img = WindowManager.getCurrentImage(); 
    13          
    14           Interpreter.batchMode=true; 
    15           IJ.run("Duplicate...", "title=Duplicate"); 
    16           IJ.run("Find Edges"); 
    17           IJ.run("Find Edges"); 
    18           IJ.run("Gaussian Blur...", "sigma=5"); 
    19           IJ.run("Auto Threshold", "method=Minimum white"); 
    20           IJ.run("Analyze Particles...", "size=0-Infinity circularity=0.00-1.00 show=Masks exclude clear add"); 
    21           IJ.run("Create Selection"); 
    22 /*        IJ.makeRectangle(2,2,img.getWidth()-4, img.getHeight()-4); 
    23           IJ.run("Crop"); 
    24           IJ.run("Create Selection"); 
    25           IJ.run("Create Mask"); 
    26           IJ.run("Fill Holes"); 
    27           IJ.run("Create Selection"); 
    28 */ 
    29           IJ.selectWindow("Mask of Duplicate"); 
    30           WindowManager.removeWindow(WindowManager.getFrontWindow()); 
     13public class bf_ParticleAreasPlugin implements PlugInFilter { 
    3114 
    32           IJ.selectWindow("Duplicate"); 
    33           WindowManager.removeWindow(WindowManager.getFrontWindow()); 
    34 //        Interpreter.batchMode=false; 
     15        protected ImagePlus image; 
     16        @Override 
     17        public int setup(String arg, ImagePlus image) { 
    3518 
    36           IJ.run("Restore Selection"); 
    37 //        IJ.run("ROI Manager..."); 
    38 //        IJ.runMacro("roiManager(\"add\")",null); 
     19                this.image = image; 
     20                return DOES_8G | NO_CHANGES; 
     21        } 
    3922 
    40 //        img = WindowManager.getCurrentImage(); 
    41 //        Roi roi = img.getRoi(); 
     23        @Override 
     24        public void run(ImageProcessor arg0) { 
     25                try{ 
     26                        Interpreter.batchMode=true; 
     27                        Duplicator dup = new Duplicator(); 
     28                        ImagePlus duplicate = dup.run(image); 
     29                        //TODO use duplicate image in all "run"s,  
     30                        IJ.run("Duplicate...", "title=Duplicate"); 
     31                        IJ.run("Find Edges"); 
     32                        IJ.run("Find Edges"); 
     33                        IJ.run("Gaussian Blur...", "sigma=5"); 
     34                        IJ.run("Auto Threshold", "method=Minimum white"); 
     35                        IJ.run("Analyze Particles...", "size=0-Infinity circularity=0.00-1.00 show=Masks exclude clear add"); 
     36                        IJ.runMacro("roiManager(\"Measure\")",null); 
     37                } catch(Exception e){ 
    4238 
    43 //      if(roi.getType()==Roi.COMPOSITE){ 
    44 //        IJ.runMacro("roiManager(\"Split\")",null); 
    45 //        IJ.runMacro("roiManager(\"Select\", 0)",null); 
    46 //        IJ.runMacro("roiManager(\"Delete\")",null); 
    47 //      } 
    48           IJ.runMacro("roiManager(\"Measure\")",null); 
    49 //        IJ.runMacro("roiManager(\"Show All\")",null);  
    50           Interpreter.batchMode=false; 
    51  
    52 //        WindowManager.closeAllWindows(); 
    53  
    54 /*              RoiManager rm = RoiManager.getInstance(); 
    55                 ResultsTable rt = ResultsTable.getResultsTable(); 
    56  
    57  
    58                 Integer lenghtOfRoiTable = rm.getRoisAsArray().length; 
    59                 if (lenghtOfRoiTable == (Integer) null) IJ.showMessage("Null value at lenghtOfRoiTable"); 
    60                 String asdf= lenghtOfRoiTable.toString(); 
    61                 IJ.showMessage("My_Plugin",asdf); 
    62  
    63                 Integer[] retVal = new Integer[lenghtOfRoiTable]; 
    64                 float[] temp = rt.getColumn(rt.getColumnIndex("Area")); 
    65                 if (temp==null) IJ.showMessage("Null value at getColumn(1)"); 
    66  
    67                 for (int i = 0; i < lenghtOfRoiTable; i++){ 
    68                         retVal[i]=(int)temp[i]; 
    6939                } 
    70  
    71                 asdf = retVal[0].toString(); 
    72                 if(asdf!=null) IJ.showMessage(asdf); 
    73                 else IJ.showMessage("My_Plugin","S... hit the fan"); 
    74  
    75                 ImagePlus img = WindowManager.getCurrentImage(); 
    76                 rm.dispose(); 
    77                 rt.reset(); 
    78                 img.flush(); 
    79                 img.close(); 
    80 */ 
    81  
    82  
     40                Interpreter.batchMode=false; 
    8341 
    8442 
Note: See TracChangeset for help on using the changeset viewer.