[Zooimage-commits] r174 - in pkg/zooimage: R inst/imagej inst/imagej/plugins src

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Mon Jun 15 08:01:52 CEST 2009


Author: romain
Date: 2009-06-15 08:01:51 +0200 (Mon, 15 Jun 2009)
New Revision: 174

Removed:
   pkg/zooimage/inst/imagej/fitvis
   pkg/zooimage/inst/imagej/plugins/FITVIS.macro
   pkg/zooimage/inst/imagej/plugins/_fitvis.jar
   pkg/zooimage/inst/imagej/plugins/fitvis_.cfg
   pkg/zooimage/src/data_fitvis/
   pkg/zooimage/src/src_fitvis/
Modified:
   pkg/zooimage/R/utilities.r
   pkg/zooimage/src/
Log:
remove fitvis plugin 

Modified: pkg/zooimage/R/utilities.r
===================================================================
--- pkg/zooimage/R/utilities.r	2009-06-10 11:12:17 UTC (rev 173)
+++ pkg/zooimage/R/utilities.r	2009-06-15 06:01:51 UTC (rev 174)
@@ -612,15 +612,15 @@
 #     used by zooimage functions
 
 #' masking system so that the warnings related to using windows arguments
-system <- function (command, intern = FALSE, ignore.stderr = FALSE, wait = TRUE, 
-    input = NULL, show.output.on.console = TRUE, minimized = FALSE, 
-    invisible = TRUE){ 
-		
-		call <- match.call( )
-		call[[1]] <- base::system
-		suppressWarnings( eval( call , envir = parent.frame() ) )
-	
-}
+# system <- function (command, intern = FALSE, ignore.stderr = FALSE, wait = TRUE, 
+#     input = NULL, show.output.on.console = TRUE, minimized = FALSE, 
+#     invisible = TRUE){ 
+# 		
+# 		call <- match.call( )
+# 		call[[1]] <- base::system
+# 		suppressWarnings( eval( call , envir = parent.frame() ) )
+# 	
+# }
 
 # a version that stops
 require <- function( ... ){

Deleted: pkg/zooimage/inst/imagej/fitvis
===================================================================
--- pkg/zooimage/inst/imagej/fitvis	2009-06-10 11:12:17 UTC (rev 173)
+++ pkg/zooimage/inst/imagej/fitvis	2009-06-15 06:01:51 UTC (rev 174)
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-java -Xmx900m -cp .:ij.jar:plugins/_fitvis.jar org.sciviews.zooimage.fitvis.FitVisMain $@

Deleted: pkg/zooimage/inst/imagej/plugins/FITVIS.macro
===================================================================
--- pkg/zooimage/inst/imagej/plugins/FITVIS.macro	2009-06-10 11:12:17 UTC (rev 173)
+++ pkg/zooimage/inst/imagej/plugins/FITVIS.macro	2009-06-15 06:01:51 UTC (rev 174)
@@ -1,810 +0,0 @@
-//  The calling plugin passes a single string argument which is 
-//  composed of a series of lines of text joined by the line separator(("\n")  
-//  The first line line of text holds common flags...
-//      VERBOSE  = boolean, output information messages
-//      BATCHMODE = boolean, run in batch mode (faster)
-//      DIRECTORY = string, the directory
-//      PIXELSIZE = number, the pixel size in microns
-//      MINSIZE = number, right now as ESD, default to 10
-//      MAXSIZE = number, as ESD, default to Infinity
-//      USEPIXELS = "light", "dark" or "both", default to "dark"
-//      THRESHOLDDARK = number, default to 25
-//      THRESHOLDLIGHT = number, default to 25
-//      FILL = boolean, fill holes?
-//      LARGEST = boolean, use largest or combine objects?
-//      VIGNETTES = boolean, save as jpegs saved to "_" + dirname(directory)
-//      ENHANCE = boolean, sharpen the vignette
-//      OUTLINE = boolean, add outline to vignette
-//      SCALEBAR = boolean, add scale bar where they fit
-//      MASKS = boolean, save masks to _masks
-//      LOG = boolean, log transform before background subtraction
-//      collageID = integer
-//      calibrationID = integer
-//      distanceToNeighbor = integer
-//      SLICE = number, set to the slice to work on in collage stack
-//        (this is duplicated in the per subimage navigation info below)
-//  The subsequent lines provide navigation elements per subimage
-//      ID   colSlice sX sY   pW  pH  calSlice  cX  cY
-//       0      1     2   3   4   5       6     7    8
-
-//default values
-verbose = false;
-batchmode = false;
-dir = "";
-pixelsize = 1.0;
-minsize = 0.0;
-maxsize = parseFloat("Infinity");
-usepixels  = "dark";
-thresholddark = 20;
-thresholdlight = 20;
-fillHoles = true;
-largest = true;
-vignettes = false;
-scalebar = true;
-enhance = true;
-outline = false;
-masks = false;
-dolog = false;
-distance = 45;
-
-arg = split(getArgument(),"\n");
-// get the first line of flags etc.  The first line has booleans, filepaths, 
-//  numbers etc. in comma- or tab-delimited fields
-    //print(arg[0]);
-    s = split(arg[0], ",\t");
-    for (i=0; i<s.length; i++){
-     lowS = toLowerCase(s[i]);
-     a = split(lowS, "=");
-     b  = split(s[i], "=");
-      if (startsWith(a[0],"verbose")){
-        verbose = startsWith(a[1],"true");
-      } else if (startsWith(a[0],"batchmode")){
-        batchmode = startsWith(a[1],"true");
-      } else if (startsWith(a[0],"directory")){
-        dir = b[1];
-      } else if (startsWith(a[0],"pixelsize")) {
-        pixelsize = parseFloat(b[1]);
-      } else if (startsWith(a[0],"minsize")){
-        minsize= parseFloat(b[1]); 
-      } else if (startsWith(a[0],"maxsize")){
-        maxsize= parseFloat(b[1]);
-      } else if (startsWith(a[0],"usepixels")){
-        usepixels = a[1];
-      } else if (startsWith(a[0], "thresholddark")){
-        thresholddark = parseInt(a[1]);
-      } else if (startsWith(a[0], "thresholdlight")){
-        thresholdlight = parseInt(a[1]);
-      } else if (startsWith(a[0],"fill")){
-        fillholes = startsWith(a[1],"true");
-      } else if (startsWith(a[0],"largest")){
-         largest = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "vignettes")){
-         vignettes = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "scalebar")){
-        scalebar = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "enhance")){
-        enhance = startsWith(a[1],"true");
-      } else if (startsWith(a[0], "outline")){
-        outline = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "masks")){
-        masks = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "slice")){
-        slice = parseInt(a[1]);
-      } else if (startsWith(a[0], "log")){
-        dolog = startsWith(a[1], "true");
-      } else if (startsWith(a[0], "collageid")) {
-        collageID = parseInt(a[1]);
-      } else if (startsWith(a[0], "calibrationid")) {
-        calibrationID = parseInt(a[1]);
-      } else if (startsWith(a[0], "distance")) {
-        distance = parseInt(a[1]);  
-      } else {  
-        if (verbose) {print("Unrecognized argument: " + s[i]);}
-      }
-    } 
-
-//PhG: Force log treatment
-dolog = true;  
-
-  //get the name of the directory - take it as the name
-  name = File.getName(dir);
-  //create the vignette directory
-  vignDir = dir + name + File.separator;
-  if (vignettes == true){
-    if (File.exists(vignDir) == false) {File.makeDirectory(vignDir);}
-  }
-  
-  //create the masks directory
-  maskDir = dir + "_masks" + File.separator;
-  if (masks == true){
-    if (File.exists(maskDir)==false){File.makeDirectory(maskDir);}
-  }
-    
-  outlineDir = dir + "_outlines" + File.separator;
-  if (outline == true){
-    if (File.exists(outlineDir) == false){File.makeDirectory(outlineDir);}
-  }
-
-// PhG create OD dir
-  odDir = dir + "_OD" + File.separator;
-  if (File.exists(odDir) == false){File.makeDirectory(odDir);}
-  
-  //convert diameters to area of equivalent pixels
-  //2009-04-30 BT fudge factor to deal with possible rounding differences between
-  // FIT and IJ area measurments 
-  minSizeScaler = 0.95;
-  minArea = pow((minsize * minSizeScaler)/2.,2) * PI; 
-  maxArea= pow(maxsize/2.,2) * PI;
-  if (largest == true){
-    sizeInfo = "size=0-"+maxArea;
-  } else {
-    sizeInfo = "size=" + minArea + "-" + maxArea;
-    tempSizeInfo = "size=0-"+maxArea; //for when things go bad
-  }
-
-  n = arg.length-1;
-  data = newArray(n);
-  for (i=0;i<n;i++){data[i] = "";}
-  
-  if (verbose) {
-    if (slice == 1) {
-      print(sizeInfo);
-    }
-    print("Slice = " + slice + " has " + n + " particles"); 
-  }
-
-  //this is where we begin to handle the segmentation scheme
-  isboth = false;
-  order = true;
-  //print("usepixels="+ usepixels);
-  if (startsWith(toLowerCase(usepixels), "both")){
-    pasteMode = "Difference";
-    isboth = true;
-    //not quite sure how to handle this as the threshold 
-    //can be asymmetric like -20 < difference > 10
-    //so I'll ignore this for now - later we'll have to do some
-    // two subtractions and two thresholds then AND them.  Blech.
-  } else {
-    pasteMode = "Subtract";
-      //order = true if "dark" or false if "light"
-      // true means (cal-image) > thresholddark
-      // false means (image-cal) > thresholdlight
-    order = startsWith(toLowerCase(usepixels), "dark");
-  }
-  //if (verbose) {print("order="+order);} 
-  //set the scale
- // run("Set Scale...", "distance=1 known="+pixelsize+" pixel=1 unit=um global");
-
-  //the drawing color is yellow
-  setForegroundColor(255,255,0);
-  
-  // slide into batchmode so it is faster
-  setBatchMode(batchmode);
-  
-//  selectWindow("Collages");
-//  collageID = getImageID();
-  selectImage(collageID);
-  setSlice(slice);
-  
-//  selectWindow("Calibrations");
-//  calibrationID = getImageID();
-
-  //make the subimages 
-  //cROI = from the collage
-  //bROI = from calibration (background)
-  //outline is a copy of the cROI reserved for stamping the particle outline
-  newImage("colROI", "8-bit White", 20, 20, 1);//collage subimage
-  colID = getImageID();
-  newImage("calROI", "8-bit White", 20, 20, 1);//calibration subimage
-  calID = getImageID();
-  newImage("outline","8-bit White", 20,20,1);//for outlining
-  outlineID = getImageID();
-//  newImage("original", "8-bit White", 20,20,1);//for original
-//  originalID = getImageID();
-// PhG: I need to keep both calID and colID intact for background division
-// However, Ben uses calID to create the mask
-// -> I create a separate maskID image for that purpose
-//newImage("mask","8-bit White", 20,20,1);//for mask
-//maskID = getImageID();
- 
-  if (dolog == true){
-    newImage("colLog", "8-bit White", 20, 20, 1);//collage subimage for log
-    colLogID = getImageID();
-    newImage("calLog", "8-bit White", 20, 20, 1);//calibration subimage for log
-    calLogID = getImageID(); 
-  }
-  
-  //set the measurements
-//  run("Set Measurements...","area mean standard modal min centroid center perimeter bounding fit circularity feret's integrated median skewness kurtosis redirect=colROI decimal=3");
-  //get the header column names
-  hdr = call("org.sciviews.zooimage.fitvis.FITVIS_.getResultsHeadings");
-  colHdr = split(hdr, "\t");
-  dummy = newArray(colHdr.length);
-
-//  colHdr = newArray("Area","Mean","StdDev","Mode","Min","Max","X","Y","XM","YM",
-//    "Perim.","BX","BY","Width","Height","Major","Minor","Angle","Circ.","Feret",
-//    "IntDen","Median","Skew","Kurt", "XStart", "YStart");
-      
-  run("ROI Manager...");
-  roiManager("reset");
-  run("Clear Results");
-
-//  a reminder
-//      ID   collageSlice, sX, sY   pW  pH  calSlice  cX  cY
-//       0    1            2    3   4   5       6     7    8
-
-  for (i=0;i<n;i++){
-    //get the navigation data
-    //1 = 2	23	0	44	29	1	596	266
-    //print(i + " = " + arg[i+1]);
-    //print("Processing: " + arg[i+1]);
-    s = split(arg[i+1],",\t");
-    item = s[0];
-    colSlice = parseInt(s[1]);
-    sX = parseInt(s[2]);
-    sY = parseInt(s[3]);
-    pW = parseInt(s[4]);
-    pH = parseInt(s[5]);
-    calSlice = parseInt(s[6]);
-    cX = parseInt(s[7]);
-    cY = parseInt(s[8]);
-    //copy the calibration to the "calROI" image
-    selectImage(calibrationID);
-    setSlice(calSlice);
- 
-    //function doCopy(srcID, x0, y0, w, h, dstID, resize)
-    //copy the calimage to "calROI" image
-    doCopy(calibrationID,cX,cY, pW, pH, calID, true);
-// PhG: added for the mask
-//doCopy(calibrationID,cX,cY, pW, pH, maskID, true);
-    //copy the subimage to the "colROI" image
-    selectImage(collageID);
-    doCopy(collageID, sX,sY, pW, pH, colID, true);
-//    if (dolog == true){
-//      doCopy(collageID, sX,sY, pW, pH, originalID, true);
-//    }
-    //make a copy for the outline
-    if (outline == true){
-      selectImage(outlineID);
-      run("8-bit");
-      run("Size...", "width=" + pW + " height=" + pH);
-      run("Paste");
-      run("RGB Color");//bump up so we can "burn" the outline color in
-    }
-    
-    selectImage(calID);
-    if (isboth) {
-      // this is for a two part segmentation of light and dark pixels
-      // which we ignore for now
-    } else {
-      imageCalculator(pasteMode, calID,colID);
-      selectImage(calID);
-      if (order) {
-        //if looking for dark pixels, then we want them such that
-        //(cal-col) > thresholddark
-        setThreshold(thresholddark,255);
-      } else {
-        //if looking for light pixels then we want them such that
-        // (0-cal-col) > 
-        setThreshold(0,thresholdlight);
-      }
-    }    
-    
-    if (dolog == true){
-   
-     //insert black/white points,invert, convert to float, logscale
-     // result1 = log(inverted(subimage)) - log(inverted(calibration))
-     // result2 = alog(result1)
-     
-     doCopy(calID, 0,0, pW, pH, calLogID, true);
-     selectImage(calLogID);
-// PhG
-//     run("Invert");
-     setPixel(0,0,0);
-     setPixel(0,1,255);     
-// PhG
-run("Log");
-run("Invert");
-//     run("32-bit");
-//     run("Log");
-     doCopy(colID, 0,0, pW, pH, colLogID, true);
-     selectImage(colLogID);
-// PhG
-//     run("Invert");
-     setPixel(0,1,0);
-     setPixel(0,0,255);
-// PhG
-//     run("32-bit");
-//     run("Log");
-run("Log");
-run("Invert");     
-     //subtract the two, store the result in colID
-     imageCalculator("Subtract", colLogID, calLogID);     
-      
-// PhG: don't!
-     //delog the colID
-//     selectImage(colLogID);
-//     run("Exp");
-
-// PhG a dded
-      selectImage(colLogID);
-      thisFile = odDir + name + "_OD_" + s[0] + ".png";
-      //print(thisFile);
-      saveAs("PNG", thisFile); 
-      rename("colLog");
-     
-     redirectName = "colLog";
-    } else {
-      redirectName = "colROI";
-    }
-    
-    selectImage(calID);
-    run("Convert to Mask");
-    
-    
-    if (masks == true) {
-      //the last image selected in the doSeg is the "bROI"
-      selectImage(calID);
-      thisFile = maskDir + name + "_mask_" + s[0] + ".png";
-      //print(thisFile);
-      saveAs("PNG", thisFile); 
-      rename("calROI");
-    }
-    
-    
-    roiManager("reset");
-    run("Clear Results");
-    if (fillholes == true){run("Fill Holes");}
-    roiManager("reset");
-
-    //set the measurements
-    run("Set Measurements...","area mean standard modal min centroid center perimeter bounding fit circularity feret's integrated median skewness kurtosis redirect="+ redirectName+" decimal=3");
-      
-    run("Analyze Particles...", sizeInfo + " circularity=0.00-1.00 show=Nothing display clear record");
-    
-    nbefore = nResults;
-    // if there are NO qualifying particles, run the analysis again but with 
-    // a size range of 0-maxArea.   This isn't desirable but it does seem to work OK
-    // since the situation arises only occasionally
-    if (nbefore == 0){
-      selectImage(calID);  
-      run("Analyze Particles...", tempSizeInfo + " circularity=0.00-1.00 show=Nothing display clear record");       
-    nbefore = nResults;
-    }
-    
-    selectImage(calID);
-    //print("Begin to analyze");
-
-     
-    numFound = doAnalysis(outline, largest, colID, calID, outlineID, distance, pixelsize, verbose);
-//    if (verbose){print("image: " + item + " has " + nResults + " candidate particles of which there are " +
-//      numFound + " objects" );}
-//    print("nBefore=", nbefore, "   nAfter=" , nResults + " area=" + getResult("Area", nResults-1));
-
-//    restore the original data to the colID if logscale filter is enabled
-//    if (dolog == true){
-//      selectImage(originalID);
-//      run("Copy");
-//      selectImage(colID);
-//      run("8-bit");
-//      run("Paste");
-//    }
-    
-    //print("numFound = " + numFound + " at " + i); 
-    if(i == 0) {
-      hdr = call("org.sciviews.zooimage.fitvis.FITVIS_.getResultsHeadings");
-      colHdr = split(hdr, "\t");
-      dummy = newArray(colHdr.length);
-    }
-    str =  getResultsRow(nResults-1, ",", false, colHdr, dummy);
-    data[i] = s[0] + "," + str + "," + numFound + "\n";    
-    
-    if (vignettes == true){
-      selectImage(colID);
-      if (enhance == true){run("Enhance Contrast", "saturated=0.5");}
-      if (scalebar == true){
-       barSize = getBarSize(pixelsize, s[4]);
-        //print("barSize("+i+")="+ barSize);
-       //set the scalebar
-       if (barSize != 0 ) {
-           text = "width="+barSize+" height=3 font=12 color=Black background=None location=[Upper Right]";
-           //run("Set Scale...", "distance=1 known="+cal+" pixel=1 unit=um");
-           run("Scale Bar...", text);
-           //run("Set Scale...", "distance=1 known=1 pixel=1 unit=pixel");
-       }
-      } 
-      imgname = name + "_" + s[0] + ".jpg";
-      //if (doVerbose) {print("Saving: " + imgname );}
-      saveAs("Jpeg", vignDir+ imgname);
-      rename("colROI");
-    }
-    
-    if (outline == true) {
-      thisFile = outlineDir + name + "_outline_" + s[0] + ".tif";
-      selectImage(outlineID);
-//      run("Restore Selection");
-//      run("Draw");  
-      saveAs("Tiff", thisFile);
-      rename("outline");
-    }    
-//    if (masks == true) {
-//      //the last image selected in the doSeg is the "bROI"
-//      selectImage(calID);
-//      thisFile = maskDir + name + "_mask_" + s[0] + ".png";
-//      //print(thisFile);
-//      saveAs("PNG", thisFile); 
-//      rename("calROI");
-//    }
-    
-  }//i-loop through n subimages
-  
-  s = concat(colHdr, ",", false) ;
-  s = "!Item," + s + ",Count\n";
-  for (i=0;i<n;i++){s = s+data[i];}
-  closeWindow("colROI");
-  closeWindow("calROI");
-// PhG
-closeWindow("mask");
-  closeWindow("outline");
-  if (dolog) {
-    closeWindow("colLog");
-    closeWindow("calLog");
-  }
-//  run("Clear Results");
-  showStatus("Returning from macro... please wait");
-  setBatchMode(false);
-  //run("Set Scale...", "distance=1 known=1 pixel=1 unit=pixel global");
-
-//  selectWindow("Results");
-//  run("Close");
-//  selectWindow("ROI Manager");
-//  run("Close");
-  return s;
-  
-  
-//------
-//  copies an roi from srcID to dstID with our without a resize of dstID
-//-----
-function doCopy(srcID, x0, y0, w, h, dstID, resize){
-    
-    selectImage(srcID);
-    makeRectangle(x0,y0,w,h);
-    run("Copy");
-    selectImage(dstID);
-    if (resize == true){
-        run("Size...", "width=" + w + " height=" + h);
-    }
-    setPasteMode("Copy");
-    run("Paste");
-    return dstID;  
-}
-  
-//-------
-// runs the analysis
-//-------
-function doAnalysis(outline, largest, colID, calID, outlineID, minDistance, pixelSize, verbose){
-
-    retval = 0;    
-
-    //user wants largest single partle or there is only one
-    if ((largest == true) || (nResults == 1)) { 
-      i = getBiggestIndex("Area");
-      xStart = getResult("XStart", i);
-      yStart = getResult("YStart", i);
-      doWand(xStart, yStart);
-      roiManager("Add");
-      retval = 1;
-      
-    } else {
-     // ok - there are many objects
-     //
-     // (1) calculate the distances between pairs of perimeters - rather than 
-     //   storing in a distance matrix, store in strings of connections (i.e. "trees")
-     // (2) then collapse the trees to merge entries with overlaps
-     // (3) then compress each tree so that there is one tree per connected-blobs
-     // (4) then determine which tree represents the greatest area - this assumes 
-     //   that the user wants the largest connected objects
-     // (5) select that connected component and measure
-     s= newArray(nResults);
-     delim = ":";
-     eol = "\n";
-     selectImage(calID);
-     minDist = minDistance / pixelSize;
-     for (i=0 ; i<nResults ; i++) {
-       xStart = getResult("XStart", i); //get the boundary pixels for object "a"
-       yStart = getResult("YStart", i);
-       doWand(xStart,yStart);
-       getSelectionCoordinates(xa, ya); 
-       conns = 0;
-       s2 = delim + (i) + delim;
-       s[i] = s2;
-       for (j = (i+1); j<nResults; j++){ 
-         xStart = getResult("XStart", j);  //get the perimeter pixels for object "b" 
-         yStart = getResult("YStart", j);
-         doWand(xStart,yStart);
-         getSelectionCoordinates(xb, yb);
-         d = shortestDistance(xa,ya, xb,yb); //compute the shortest distance
-         if (d <= minDist){s[i] = s[i] + (j) + delim;} //add this one if it is close enough
-       } //j loop through top to bottom of matrix
-     } // i loop through the left to right of matrix 
-     
-     //this next steps connects trees that overlap (one or more common nodes)
-     composeTrees(s, delim);
-     //this next step removes duplicate nodes and empty trees
-     r = compressTrees(s, delim);
-     // the number of entries in r indicates the number of objects
-     retval = r.length;
-     
-     if (retval == 1) {
-     // if all nodes are connected then we have just one object - simple!
-        s = split(r[0], ","); 
-//        print("nResults=" + nResults);
-//        print("r=", r[0]);
-        for (i = 0; i< s.length; i++){
-          xStart = getResult("XStart", s[i]);
-          yStart = getResult("YStart", s[i]);
-          doWand(xStart, yStart);
-          roiManager("Add");
-        }// iloop
-     } else {
-       //more than one found
-       //find the tree that represents the largest area
-       bigIndex = 0;
-       area = 0;
-       for (i = 0; i < r.length; i++){
-         s = split(r[i], ",");
-         newArea = 0;
-         for (j = 0; j< s.length; j++){
-           newArea = newArea + getResult("Area", s[j]);
-         }
-         if (newArea > area){
-           area = newArea;
-           bigIndex = i;
-         }
-       }// i-loop down through r determining the biggest area
-       
-       //this one that reperesnts the largest area is the one the
-       //that we want
-       s = split(r[bigIndex], ",");
-       for (i = 0; i< s.length; i++){
-          xStart = getResult("XStart", s[i]);
-          yStart = getResult("YStart", s[i]);
-          doWand(xStart, yStart);
-          roiManager("Add");
-        }// iloop
-
-      } // more than one connected component objects
-      
-    } // many objects
-    
-    //now select them all (add to outline image if needed)
-    for (i = 0; i<roiManager("count"); i++){
-      setKeyDown("shift");
-      roiManager("select", i); 
-      if (outline == true){
-        xStart = getResult("XStart", i);
-        yStart = getResult("YStart", i);        
-        doWand(xStart, yStart);
-        selectImage(outlineID);
-        run("Restore Selection");
-        run("Draw");
-        selectImage(calID);
-      } //outline
-    } //i loop
-// PhG added
-//roiManager("Combine");
-    run("Measure"); //add the new measurement to the results table
-  return retval;
-}//doAnalysis
-
-
-// computeDistance(x0,y0,x1,y1)
-// calculate the distance between point0 and point1
-function computeDistance(x0,y0,x1,y1){
- return sqrt(pow(x1-x0,2) + pow(y1-y0,2)); 
-}
-
-
-//calculates an appropriate scale bar size
-// 2006-11-29 BT changed so that anything less than 40 in length returns 0
-// 2009-04-30 BT changed to increments of 0, 100, 200, ...
-function getBarSize(cal, len) {
-  w = cal*parseInt(len);
-  if (w > 300){
-    return 250.0;
-  } 
-  if (w > 200) {
-    return 150.0;
-  } 
-  if (w > 100){
-    return 50.0;
-  } 
-  return 0.0; 
-//  if (parseInt(len) < 40) {
-//    x = 0.0; //no bar for small images
-//  } else {
-//    x = 0.5;   // the 50% of the pixel width of the subimage
-//  }  
-//  return floor(x*len*cal/10.) * 10;
-} 
-
-//this function searches the results table for the biggest value in a 
-// column.  For example "Area"
-//returns the index of that row
-function getBiggestIndex(colname){
-  n = nResults();
-  if (n == 0) {return -1;}
-  if (n == 1) {return 0;}
-  index = 0;
-  current = getResult(colname, index);
-  for (i = 1; i<n;i++){
-    next = getResult(colname, i);
-    if ( next > current) {
-      index = i;
-      current = next;
-    }
-  }
-  return index;
-}//getBiggestIndex
-
-
-// getResults the result line at row  appends a new line if requested
-function getResultsRow(row, delim, doNewLine, colHdr, dummy){
-    //empty the dummy array (fill with null) if there are no results
-    //other wise fill with each column specified by column header
-    if (nResults() == 0) {
-        for (i=0;i<dummy.length;i++){
-            dummy[i] = "null";
-        } 
-    } else {
-       for (i=0; i<colHdr.length;i++){
-        str = getResult(colHdr[i], row);
-        dummy[i]= toString(str);
-    }
-   }
-   //s = getResultLabel(row) + "\t" + concat(dummy, doNewLine);
-   s = concat(dummy,delim,doNewLine);
-   return s;
-}
-
-// concats an array of strings, optional newLine
-function concat(arr, delim, appendNewLine){
-   s = "";
-   for (i = 0; i<(arr.length-1); i++){
-    s = s + toString(arr[i]) + delim;
-   }
-   s = s + toString(arr[arr.length-1]);
-   if (appendNewLine == true) {
-    s = s + "\n";
-   }
-   return s;
-} 
-
-function closeWindow(title){
-    if (isOpen(title)){
-        selectWindow(title);
-        close();
-    }
-}
-
-
-// this function will compress each tree by sorting and removing duplicates
-// as in the example below. The funny delimiters have served their purpose so commas 
-// are used instead.
-//    before compress ...
-//    s[ 0 ] =  :1:2:4:2:4:4:
-//    s[ 1 ] =  
-//    s[ 2 ] =  :3:5:5:
-//    s[ 3 ] =  
-//    s[ 4 ] =  
-//    s[ 5 ] =  :6:
-//    after compress...
-//    x[ 0 ] =  1,2,4
-//    x[ 1 ] =  3,5
-//    x[ 2 ] =  6
-
-function compressTrees(s, delim){
-  count = 0;
-  for (i=0; i<s.length; i++){
-      x = split(s[i], ":"); 
-      if (x.length > 1){
-        Array.sort(x);
-        s[i] = x[0];
-        for (j=1; j<x.length; j++){
-          if (x[j] != x[j-1]) { s[i] = s[i] + "," + x[j];}
-        } //step through the x's
-      } else if (x.length == 1) {
-        s[i] = x[0];
-      }
-      
-      if (lengthOf(s[i]) > 0){
-        count++;
-      }
-      
-  }//i loop
-  
-  
-  if (count > 0) {
-    j = 0;
-    x = newArray(count);
-    for (i=0; i<s.length; i++){ 
-      if (lengthOf(s[i]) > 0){ x[j] = s[i]; j++;}
-    }
-  } else {
-    x = newArray(1);
-    x[0] = 0;
-  }  
-  return x;
-}
-
-// this function builds the search "trees" which at this point is a series
-// of delimited identifiers (":1:5:7:13:") and combine all of those that share
-// a node in common - it will empty those which are moved to other branches.
-// nodes without neighbors are left alone. for example...
-//      before compose...
-//      s[ 0 ] =  :1:2:4:
-//      s[ 1 ] =  :2:4:
-//      s[ 2 ] =  :3:5:
-//      s[ 3 ] =  :4:
-//      s[ 4 ] =  :5:
-//      s[ 5 ] =  :6:
-//      move  1  to  0
-//      move  3  to  0
-//      move  4  to  2
-//      after compose ...
-//      s[ 0 ] =  :1:2:4:2:4:4:
-//      s[ 1 ] =  
-//      s[ 2 ] =  :3:5:5:
-//      s[ 3 ] =  
-//      s[ 4 ] =  
-//      s[ 5 ] =  :6:
-//      
-function composeTrees( s, delim){
-  for (i = 1; i<s.length; i++){
-    t = split(s[i], delim); //split the line
-    j = 0; //a starting index
-    while ((j >= 0) && (j < t.length)){
-        ix = topIndex(s, t[j], delim); // find the topmost location of this ID
-        if (ix >= 0) { //if it matches then move the entire line
-          if (ix != i){
-            s[ix] = s[ix] + substring(s[i],1);
-            s[i] = "";
-          } 
-          j = -1; //bail out
-        } else { // otherwise keep going down the list
-          j++;
-        }
-    } // while j...
-  }// i loop
-    
-  return 1;
-} // end of composeTrees
-
-// returns the lowest index into s where "num" appears
-// or -1 if num never appears
-function topIndex(s, num, delim){
-  for (i = 0; i < s.length; i++){
-    ix = indexOf(s[i], delim + num + delim);
-    if (ix >= 0) {return i;}
-  }
-  return -1; 
-}  
-
-
-// computes the shortest distance from p0 to p1 where p0 and p1 are perimeter vectors
-// x0 and y0 must the the same length, and x1, y1 must be the same length
-// but x1 and x2 can be different lengths
-function shortestDistance(x0,y0, x1, y1){
- d = 1000000;  // some very large number to start with
- for (i = 0; i < x0.length; i++){
-    //print("[",x0[i],y0[i],"]");
-  for (j= 0; j < x1.length; j++){
-    dx = x0[i]-x1[j];
-    dy = y0[i]-y1[j];
-    //print("  [",x1[j],y1[j],"] => [", dx, dy, "]");
-    d2 = dx*dx + dy*dy;
-    if (d2 < d) {d = d2;}
-  }//j-loop through 
- }
- return sqrt(d);
-}

Deleted: pkg/zooimage/inst/imagej/plugins/_fitvis.jar
===================================================================
(Binary files differ)

Deleted: pkg/zooimage/inst/imagej/plugins/fitvis_.cfg
===================================================================
--- pkg/zooimage/inst/imagej/plugins/fitvis_.cfg	2009-06-10 11:12:17 UTC (rev 173)
+++ pkg/zooimage/inst/imagej/plugins/fitvis_.cfg	2009-06-15 06:01:51 UTC (rev 174)
@@ -1,20 +0,0 @@
-version=FITVIS_
-interval=30
-pixelSize=1.6386
-minSize=25
-maxSize=2000
-distance=45
-usePixels=Dark
-thresholdDark=15
-thresholdLight=25
-fill=false
-largest=false
-vignettes=true
-scalebar=true
-enhance=false
-outline=true
-masks=true
-log=false
-verbose=true
-batch=true
-archive=false
\ No newline at end of file


Property changes on: pkg/zooimage/src
___________________________________________________________________
Name: svn:ignore
   - bin

   + bin
bin_fitvis




More information about the Zooimage-commits mailing list