http://imagej.273.s1.nabble.com/Problem-with-setCalibration-and-getCalibration-tp5010425p5010430.html
to me it looks like you can use the built-in RODBARD function in your case anyhow:
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.
> 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>
>