Hi,
I just bumped into another trouble and would like to ask for your help.
There are three ways to read the intensity value of an image:

Using the Java Built in library ImageIO, ImageReader, …, etc.

Using ImageJ by Bioformat (IFormatReader, BufferedImageReader,…, etc)

Using Matlab
I found that the intensity values obtained from method 1 and 3 are identical while a slight difference from method 2. Following is an example. Does it make sense ? If so, what is the reason for the difference ?
Method 1 (Pure Java) 2 (ImageJ) 3 (Matlab)
[128,128] 33 33 49
[128,129] 38 36 56
[129,129] 42 37 62
[129,128] 35 36 52Max 193 193 286
Min 0 0 0
And this is how I get the pixel value by bioformat:
IFormatReader imgReader = new ImageReader();
imgReader.setMetadataStore(MetadataTools.createOMEXMLMetadata());
imgReader.setId(filePath);
BufferedImageReader buffImgReader = new BufferedImageReader(imgReader);
BufferedImage buffImg = buffImgReader.openImage(64);
IJ.log("[128,128] = " + buffImg.getRaster().getSample(128,128, 0));
IJ.log("[128,129] = " + buffImg.getRaster().getSample(128,129, 0));
IJ.log("[129,129] = " + buffImg.getRaster().getSample(129,129, 0));
IJ.log("[129,128] = " + buffImg.getRaster().getSample(129,128, 0));
Thanks~~~~