Posted by
Herbie on
Jan 08, 2021; 10:10am
URL: http://imagej.273.s1.nabble.com/behavior-of-variable-when-function-is-called-tp5024336p5024340.html
Dear experts and especially Wayne,
please consider the following situation:
A___________________________________________
1. Open an 8-bit image with zoom e.g. 400%
2. Use the point tool
3. Make a point selection at x=5, y=10 according
to the coordinates shown in the IJ-toolbar
B___________________________________________
1. Run the macro:
//
getSelectionBounds( x, y, width, height );
print( round(x), round(y) );
//
2. The log-window shows:
5 10
C___________________________________________
1. Run the compiled plugin:
//
import java.awt.*;
import ij.*;
import ij.gui.*;
import ij.process.*;
import ij.plugin.filter.PlugInFilter;
public class My_PlugInFilter implements PlugInFilter {
protected ImagePlus imp;
public int setup( String arg, ImagePlus imp ) {
if ( IJ.versionLessThan( "1.53g" ) )
return DONE;
if( imp != null ) {
this.imp = imp;
}
return DOES_8G;
}
public void run( ImageProcessor ip ) {
Roi roi = imp.getRoi();
int x_0 = (int)Math.round( roi.getBounds().x );
int y_0 = (int)Math.round( roi.getBounds().y );
IJ.log( ""+x_0+"; "+y_0 );
}
}
//
2. The log-window *sometimes* shows:
5; 10
3. However, in many cases the result is "5; 9", "4; 9", or "4; 10"
4. The plugin-result depends on how the point selection was set in the
zoomed image
5. The discrepancy is not observed if the image is not initially zoomed
What am I doing wrong?
Regards
Herbie
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html