Re: Calling CurveFitter from Java; only 4 fit functions work

Posted by Curtis Rueden on
URL: http://imagej.273.s1.nabble.com/Calling-CurveFitter-from-Java-only-4-fit-functions-work-tp5022103p5022112.html

Hi all,

> The latest daily build (1.52o42) has a better JavaScript curve fitting
> example

Thanks Wayne!

> To get a maven version, you will need to wait for the release of
> ImageJ 1.52o (due in a few days) and then wait for Fiji to pick it up.

I just want to clarify that the net.imagej:ij artifacts are not
Fiji-specific. The mechanism by which the Maven artifacts are produced is
described here: https://imagej.net/ImageJA. The deployment of the Maven
artifact is a separate (earlier) step from the upload of the artifact to
the ImageJ update site (https://update.imagej.net/)—which is also not
Fiji-specific. But it is true that the Fiji distribution of ImageJ is built
on top of that core update site, so Fiji will not a release of ImageJ 1.x
until its Maven artifact is deployed to maven.imagej.net and then uploaded
to update.imagej.net.

Regards,
Curtis

--
Curtis Rueden
LOCI software architect - https://loci.wisc.edu/software
ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
Have you tried the Image.sc Forum? https://forum.image.sc/



On Mon, Apr 22, 2019 at 1:38 PM Wayne Rasband <[hidden email]> wrote:

> > On Apr 22, 2019, at 12:13 PM, Tihamer <[hidden email]>
> wrote:
> >
> > Thanks for the quick reply, Wayne.
> >
> > Executive Summary:  I can't get a copy of the 1.52o38 jar file.
>
> The latest daily build (1.52o42) has a better JavaScript curve fitting
> example (included below) that you can access using the
> Help>Examples>JavaScript>Curve Fitting command. It does all 25 built in
> curve fits, plots them and adds the plots to a stack. To upgrade, use the
> Help>Update ImageJ command and select “daily build” from the drop down
> menu. To get a maven version, you will need to wait for the release of
> ImageJ 1.52o (due in a few days) and then wait for Fiji to pick it up.
>
> -wayne
>
>   xpoints = [0, 1, 2, 3, 4, 5];
>   ypoints = [0, 0.9, 4.5, 8, 18, 24];
>   stack = new ImageStack();
>   for (fit in CurveFitter.fitList) {
>      cf = new CurveFitter(xpoints, ypoints);
>      cf.doFit(fit);
>      label = cf.getName()+"["+fit+"]";
>      plot = cf.getPlot();
>      stack.addSlice(label, plot.getProcessor());
>   }
>   new ImagePlus("Curve Fits", stack).show();
>
>
> > You wrote:
> >> The following JavaScript version of your program should work better.
> >
> > As far as I can tell, your JavaScript is pretty much identical to the
> Java I
> > must use. In psudocode:
> > 1. Create a new CurveFitter with the x and y data.
> > 2. Call doFit().
> > 3. Print the results.
> >
> >> It requires the latest ImageJ daily build (1.52o38),
> >
> > Unfortunately, the maven repo at
> > https://mvnrepository.com/artifact/net.imagej/ij only goes up to 1.52n.
> Do
> > you have any idea when that will get updated?  Do you push to it every
> once
> > in a while, or do you depend on them to pull?
> >
> > I found the latest source code (version 1.52o40) at
> >
> https://github.com/imagej/imagej1/blob/c56624301df300ae7e30c26ad9c71ff9025eae46/ij/measure/CurveFitter.java
> > So I tried to download the entire ImageJ 1.x repository from
> >
> https://github.com/imagej/imagej1/tree/c56624301df300ae7e30c26ad9c71ff9025eae46
> > but it's a non-maven project that I couldn't pull into Eclipse to
> generate
> > my own jar. I noticed the build.xml file. Um... oh, yeah, ant.  I
> remember
> > using ant about a decade or two ago, but it would take me a long time to
> get
> > back up to speed.  :-(
> >
> > So I tried getting ImageJA (the maven version of ImageJ), but that only
> goes
> > up to version 1.52n.  :-(
> >
> > Finally, I tried grabbing just your new CurveFitter.java, but it broke
> with
> > the same array Index Out of Bounds exception.  :-(  Obviously, there are
> > more dependencies here--I would probably need to grab all the files
> manually
> > to make sure I have to entire fix for the Array Out of Bounds problem.
> :-(
> >
> >> which fixes a CurveFitter.getResultString() bug that caused it to
> > fail when there was a fitting error.
> >
> > The 1.52n code is breaking during the doFit() step, not during the output
> > printing step, though I do see how you improved
> CurveFitter.getResultString.
> >
> >> Note that you have to construct a new CurveFitter for each fit.
> >
> > Yes, I did that. Does it look like I didn't?
> >
> > I hope you can create a 1.52o38 (or later) jar file for the maven repo,
> or
> > update ImageJA sometime soon.
> >
> > Thanks again for your help so far.
> >
> >
> >
> >
> >
> >
> > --
> > Sent from: http://imagej.1557.x6.nabble.com/
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html