// Morphological_PCA.txt // Uses PCA to extract principal components // morphological and greyscale properties. // requires: // 1. PCA plugin by M. D. Abràmoff, from http://bij.isi.uu.nl/pca.htm // 2. the Glasbey look up table (renamed as "006-glasbey.lut") // // G. Landini at bham. ac. uk // 31/Jul/2008 // 23/Dec/2009 fixed opening of Resutls Table // 4/Feb/2014 fixed reloading Results Table again! // IMPORTANT!: // If you do not know what z-scores and k-means clustering means, please find // out, so you know what you are doing. requires("1.41k"); a=getTitle(); if (!isOpen("Results")){ if(getBoolean("Run Particles8 ?")) run("Particles8 ", "white morphology show=Particles display overwrite redirect=None"); } //run("Particles8 ", "white morphology show=Particles display overwrite redirect=None"); // save the current Results Table in the IJ folder myResults="TempResults.txt"; ijdir = getDirectory("imagej"); saveAs("Results", ijdir + myResults); //if (labels[0]==" ") // k=1; // it is an ImageJ Results table, skip first column //else // k=0; // it is not a Results table, load all columns // The list of parameters (any order will do) //---------------------------------------- //all possible for Particles8/4 you should add some more for Lines8 //myParams=newArray("Label","Slice","Number","XStart","YStart","Perim","Area","Pixels","XM","YM","ROIX1","ROIY1","ROIX2","ROIY2","MinR","MaxR","Feret","FeretX1","FeretY1","FeretX2","FeretY2","FAngle","Breadth","BrdthX1","BrdthY1","BrdthX2","BrdthY2","CHull","CArea","MBCX","MBCY","MBCRadius","CountCorrect","AspRatio","Circ","Roundness","ArEquivD","PerEquivD","EquivEllAr","Compactness","Solidity","Concavity","Convexity","Shape","RFactor","ModRatio","Sphericity","ArBBox","Rectang","GrIntDen","GrMin","GrMax","GrMode","GrMedian","GrAverage","GrAvDev","GrStDev","GrSkew","GrKurt","GrEntr","RedIntDen","RedMin","RedMax","RedMode","RedMedian","RedAverage","RedAvDev","RedStDev","RedVar","RedSkew","RedKurt","RedEntr","GreenIntDen","GreenMin","GreenMax","GreenMode","GreenMedian","GreenAverage","GreenAvDev","GreenStDev","GreenVar","GreenSkew","GreenKurt","GreenEntr","BlueIntDen","BlueMin","BlueMax","BlueMode","BlueMedian","BlueAverage","BlueAvDev","BlueStDev","BlueVar","BlueSkew","BlueKurt","BlueEntr"); // //just a test //myParams=newArray("Label","Area", "ArBBox","Rectang","RedMin"); //only morphological (no *Var (correlated with *StDev), no *IntDen (correlated with Area and *Average) myParams=newArray("Label","Slice", "Number","XStart","YStart","Perim","Area","Pixels","MinR","MaxR","Feret","Breadth","CHull","CArea","MBCRadius","AspRatio","Circ","Roundness","ArEquivD","PerEquivD","EquivEllAr","Compactness","Solidity","Concavity","Convexity","Shape","RFactor","ModRatio","Sphericity","ArBBox","Rectang","GrMin","GrMax","GrMode","GrMedian","GrAverage","GrAvDev","GrStDev","GrSkew","GrKurt","GrEntr","RedMin","RedMax","RedMode","RedMedian","RedAverage","RedAvDev","RedStDev","RedSkew","RedKurt","RedEntr","GreenMin","GreenMax","GreenMode","GreenMedian","GreenAverage","GreenAvDev","GreenStDev","GreenSkew","GreenKurt","GreenEntr","BlueMin","BlueMax","BlueMode","BlueMedian","BlueAverage","BlueAvDev","BlueStDev","BlueSkew","BlueKurt","BlueEntr","PLength", "SkelLength"); nParams=myParams.length; defParams=newArray(nParams); // ignore the following defParams[0]=false; //Label defParams[1]=false; //Slice defParams[2]=false; // Number defParams[3]=false; // XStart defParams[4]=false; // YStart // do not ignore the rest for (i=5;i