diff --git a/pom.xml b/pom.xml index fd5bc9a..48b7583 100644 --- a/pom.xml +++ b/pom.xml @@ -1,87 +1,87 @@ 4.0.0 net.imagej pom-imagej 7.0.0 ch.epfl.biop 0.1.0-SNAPSHOT plugins/PTS_Analyzer.jar imagej.public http://maven.imagej.net/content/groups/public oburri Olivier Burri olivier.burri@epfl.ch http://biop.epfl.ch EPFL BioImaging And Optics Platform BIOP http://epfl.ch Image Analyst Biotech Engineer +1 https://c4science.ch/diffusion/767/ijp-pts.git HEAD https://c4science.ch/diffusion/767/ijp-pts.git PTS_Analyzer C:/Fiji/ net.imagej ij fiji fiji-plugins 20101208 sc.fiji imagescience 3.0.0 maven-jar-plugin ${main-class} PTS_Analyzer - Mavenized Improved fit largest circle plugin + PTS Analyzer plugin diff --git a/src/PTS_Analyzer.java b/src/PTS_Analyzer.java index d39f784..a846791 100644 --- a/src/PTS_Analyzer.java +++ b/src/PTS_Analyzer.java @@ -1,116 +1,116 @@ import ch.epfl.biop.pts.HerbieCenterDetector; import ch.epfl.biop.pts.PTSAnalyzer; import ch.epfl.biop.pts.PTSCenterDetector; import ch.epfl.biop.pts.PTSCriteria; import ch.epfl.biop.pts.PTSResult; import ch.epfl.biop.pts.PTSSettings; import ij.IJ; import ij.ImageJ; import ij.ImagePlus; import ij.Prefs; import ij.gui.GenericDialog; import ij.measure.ResultsTable; import ij.plugin.PlugIn; /** * PlugIn to find the largest circle or circles inside a mask. * Macro recordable * @author Olivier Burri * @version 1.0 */ -public class PTS_Analyzer implements PlugIn { +public class PTS_Analyzer implements PlugIn { @Override public void run(String arg) { ImagePlus imp = IJ.getImage(); // Pick up all the preferences for the dialog boolean is_over_sample = Prefs.get("biop.pts.is_over_sample", true); double p2p_var_pct = Prefs.get("biop.pts.p2p_var_pct", 50); double convergence_limit = Prefs.get("biop.pts.convergence", 0.01); double min_peaks = Prefs.get("biop.pts.min_peaks", 350); double min_good_pct = Prefs.get("biop.pts.min_good_pct", 95); GenericDialog gd = new GenericDialog("PTS Analysis Settings"); gd.addCheckbox("Oversample image", is_over_sample); gd.addNumericField("Allowed Peak to Peak Variation [%]", p2p_var_pct, 3); gd.addNumericField("Minimum_Number of Total Peaks", min_peaks, 3); gd.addNumericField("Minimum_Percent of Good Peaks [%]", min_good_pct, 3); gd.addNumericField("Convergence Limit", convergence_limit, 3); gd.showDialog(); if(gd.wasCanceled()) { return; } is_over_sample = gd.getNextBoolean(); p2p_var_pct = gd.getNextNumber(); min_peaks = gd.getNextNumber(); min_good_pct = gd.getNextNumber(); convergence_limit = gd.getNextNumber(); Prefs.set("biop.pts.is_over_sample", is_over_sample); Prefs.set("biop.pts.p2p_var_pct", p2p_var_pct); Prefs.set("biop.pts.convergence", convergence_limit); Prefs.set("biop.pts.min_good_peaks", min_peaks); Prefs.set("biop.pts.min_good_pct", min_good_pct); // Whew, now we can begin PTSCenterDetector cd = new HerbieCenterDetector(); PTSSettings set = new PTSSettings(is_over_sample, 20, p2p_var_pct, cd); PTSCriteria crit = new PTSCriteria(convergence_limit, min_peaks, min_good_pct); PTSResult r = PTSAnalyzer.run(imp, set, crit); ResultsTable rt = ResultsTable.getResultsTable(); rt = r.appendToResultsTable(rt, imp.getTitle()); rt.show("Results"); } /** * Main method for debugging. * @param args unused */ public static void main(String[] args) { // set the plugins.dir property to make the plugin appear in the Plugins menu Class clazz = PTS_Analyzer.class; String url = clazz.getResource("/" + clazz.getName().replace('.', '/') + ".class").toString(); String pluginsDir = url.substring(5, url.length() - clazz.getName().length() - 6); System.setProperty("plugins.dir", pluginsDir); // start ImageJ new ImageJ(); String[] images = new String[4]; images[0] = "20160511_IN1_63x1.4_RG_Image1_RG.tif"; images[3] = "20160413_IN1_63x1.4_OB_Image1_Oli.tif"; images[2] = "20160413_IN1_40x1.3_OB_Image1_Oli.tif"; images[1] = "20160413_IN1_20x0.8_OB_Image1_Oli.tif"; ResultsTable rt = ResultsTable.getResultsTable(); for( int i=0; i