[ome-devel] ScanR Reader

Rubén Muñoz ruben.munoz at embl.de
Wed Aug 18 15:50:04 BST 2010


Hi Melissa

Sorry for the late reply. 
The answer is 3) The pixel type is always unsigned. The sign is set by National Instruments NI-IMAQ, which is  the driver used by ScanR to store the images. 
There's a document explaining this at http://digital.ni.com/public.nsf/allkb/3C727E03F004EA528625714900706CA0

I have tried to change your code myself:

      case FormatTools.INT16:
        pixelType = FormatTools.UINT16;
        break;
      case FormatTools.UINT16:
       pixelType = FormatTools.INT16;
        break;

To:

      case FormatTools.INT16:
        pixelType = FormatTools.INT16;
        break;
      case FormatTools.UINT16:
       pixelType = FormatTools.UINT16;
        break;

But, none of them is producing unsigned OME.TIF images with bfconvert. I do not know if the TIFF writer can transform the data in such a way.

A colleague of mine introduced some code in ImageConverter fixing this issue.

	long s = System.currentTimeMillis();
        byte[] buf = reader.openBytes(i);

        ...

        convert12bitTo16bit(buf);
        writer.saveBytes(i, buf);

Where:

public static void convert12bitTo16bit(byte[] buf){
          for (int i = 0; i < buf.length; i += 2)
                  buf[i+1] = (byte)(buf[i+1] & 0x0F);
 }

He stands that the images take values in 12 bit little endian range, so removes the sign with the mask.

I hope the following information helps, at least it clarifies the problem.

Best regards,

Rubén

On Aug 13, 2010, at 4:54 PM, Melissa Linkert wrote:

> Hi Rubén,
> 
>> However bfconvert seems to keep the signedness upon conversion. This is, the resulting OME.TIFFs are signed 16 bit like the raw data.
> 
> That's right.  Reading through this thread from last year:
> 
> http://lists.openmicroscopy.org.uk/pipermail/ome-devel/2009-November/001517.html
> 
> it looks like you had originally asked to have the the pixel type
> recorded as signed 16-bit, even if the raw files contain unsigned 16-bit
> data.  Changing that is relatively easy, but I want to make certain that
> we are both clear on how the pixel type needs to be recorded.
> Basically, we need to make a final decision between these options:
> 
> 1) The pixel type of the ScanR dataset always matches the pixel type in
> each of the TIFF files.
> 
> 2) The pixel type of the ScanR dataset always has the opposite sign of
> the pixel type in each of the TIFF files.
> 
> 3) The pixel type is always unsigned.
> 
> 4) The pixel type is always signed.
> 
> (1) is my personal preference, and (2) is what we are using now.  If you
> could clarify which option is preferable to you, that would be very helpful.
> 
> Regards,
> -Melissa
> 
> On Thu, Aug 12, 2010 at 11:00:46AM +0200, Rubén Muñoz wrote:
>> Hi Melissa,
>> I have one more question regarding the ScanR format. Hope that you can dedicate a bit more time to this.
>> As you know, Bioformats Exporter plugin its creating unsigned 16 bits images out of ScanR slices. That's appreciated.
>> 
>> However bfconvert seems to keep the signedness upon conversion. This is, the resulting OME.TIFFs are signed 16 bit like the raw data.
>> Is this configurable. Could one have unsigned bytes by default in OME.TIF. Signed pixels have no advantage I guess.
>> 
>> Thanks a lot.
>> 
>> Rubén



More information about the ome-devel mailing list