Re: Problem with setCalibration() and getCalibration

Posted by Michael Schmid on
URL: http://imagej.273.s1.nabble.com/Problem-with-setCalibration-and-getCalibration-tp5010425p5010430.html

Hi David,

to me it looks like you can use the built-in RODBARD function in your case anyhow:

RODBARD:  y = d + (a-d)/(1+(x/c)^b) = d + (a-d)*c^b / (c^b+x^b)

You have  y = -b + a/(x-c)

If I got it right, the Rodbard parameters are

b = 1
d = -your_b
c = -your_c
a - d = your_a / c

Nevertheless, if you see something like 'value=650 (6500)' in the status line, it means that your image is calibrated, the calibrated value is 650, the raw pixel value is 6500.

Michael
________________________________________________________________


On Nov 13, 2014, at 18:59, Dawid Krzempek wrote:

> Thanks for your reply. Now I understand, but it's not the end of my problems. :)
>
> As you can see from my code, I try to calibrate image using values (table), not by function - my function is different than any of available in ImageJ.
>
> But when I calibrate like this, image after display it is not calibrated. I use calib in setCalibration() or setGlobalCalibration() - both are not working.
> When Global calibration is using, there are some "tracks" of calibration. For example, when I am trying to open another Image, I get:
> "The calibration of this image conflicts with the current global calibration...."
> But in fact image is not calibrated. Information about pixel doesn't seem like that:
> x=0, y=10 value=650 (6500)
> It seems like that:
> x=0, y=10 value=6500
> So I don't have any information about calibrated value.
> I have no idea, what I am doing wrong.
> Maybe the function is obligatory to make ImageProcessor calibration possible?
> Thanks in advance
> David
>
> 2014-11-13 18:32 GMT+01:00 Michael Schmid <[hidden email]>:
> Hi Wayne, David,
>
> looks like an unintended behavior in Calibration, currently calibrated() only checks for a function, not for a table (line 283...):
>
>     /** Returns true if this image is density calibrated. */
>     public boolean calibrated() {
>         return function!=NONE;
>     }
>
>
> I think that it should be
> ...
>         return function!=NONE || cTable != null;
>
>
> Best regards,
>
> Michael
> ________________________________________________________________
> Michael Schmid                    email: [hidden email]
> Institut für Angewandte Physik, Technische Universität Wien
> Wiedner Hauptstr. 8-10/E134, A 1040 Wien, Austria
> Tel. +43 1 58801-13452 or -13453, Fax +43 1 58801 13499
> ________________________________________________________________
>
> On Nov 13, 2014, at 18:10, Dawid Krzempek wrote:
>
> > Hello,
> > I am writing some Imagej plugin and have few problems with value calibration.
> > I am not experienced in writing programs like this one, so the solution can be very simple.
> >
> > I try to calibrate ImagePlus. There is my code (img1 is ImagePlus object)
> >
> >                float [] param={146494f,3.55146f,2079.82f};
> >                float cTable[]=new float[65536];
> >                Calibration calibr=new Calibration();
> >                float a=param[0];
> >                float b=param[1];
> >                float c=param[2];
> >                for (int i=0;i<65536;i++){
> >                    float value=-b+a/(i-c);
> >                    if (value>10) cTable[i]=10;
> >                    else if (value<0) cTable[i]=0;
> >                    else cTable[i]=value;
> >                }
> >                calibr.setCTable(cTable,"Gy");
> >                System.out.println(calibr.calibrated());
> >                img1.setCalibration(calibr);;
> >                System.out.println(img1.getCalibration().calibrated());
> >
> > The output then:
> >
> > true
> > false
> >
> > setCalibration() seems not working. Image is not calibrated after using this method. I was expected "true true" output Could somebody tell me, where is my mistake?
> > The goal of calibration is working on calibrated (Gy) values, not on signal values. Is there any other way to achieve it?
> > Thanks for your help
> > David
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
>

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