[ITK Community] Problem with multi-image tiff on Linux (ubuntu)

Gib Bogle g.bogle at auckland.ac.nz
Thu Mar 6 15:17:49 EST 2014


Hi Brad,

I rebuilt ITK on ubuntu with ITK_USE_SYSTEM_TIFF unselected, and confirmed that the truncation problem is still there.  It seems to be an ITK issue, as you suspected.  Interesting (and problematic) that it occurs on Linux/ubuntu but not on Windows 7.  I could send a tiff file that manifests the problem to anyone who'd like to test it on their Linux system.  The file (compressed tiff) is 95 MB.

Gib
________________________________
From: Bradley Lowekamp [blowekamp at mail.nih.gov]
Sent: Thursday, 6 March 2014 2:55 a.m.
To: Gib Bogle
Cc: community at itk.org
Subject: Re: [ITK Community] Problem with multi-image tiff on Linux (ubuntu)

Hello,

For windows to handle larger than 4GB image the CMake option ITK_USE_64BITS_IDS needs to be turned on. (  In this day and age it really should be turned on by default now. )

I have had similar problems trying to convert large image to tiffs too. Specifically, I recall getting the same type of truncation when trying to convert the Visible Human cyro-slices to big tiff.

I think some serious time needs to be spend looking at itkTIFFImageIO for 64-bit issues, as my casual looks have not turned up anything.

Brad

On Mar 5, 2014, at 3:28 AM, Gib Bogle <g.bogle at auckland.ac.nz<mailto:g.bogle at auckland.ac.nz>> wrote:

I have recently started having to work with big multi-image tiff files, e.g. 4.5 GB.  I discovered that ITK on Windows cannot handle such large images, so I am trying to use Linux (64-bit ubuntu 12.10).  I managed to build ITK with libtiff5 (actually 4.0.2 I think) which does have bigtiff support, after downloading the latest source code with git, which contains a patch fix for a bug that prevented building.  The patch was applied yesterday, so that was a bit of luck.

But there is something screwy happening when I read my multi-image tiff with ITK.  After reading the image (which is compressed with Deflate) I look at each z-frame and compute the sum of pixel intensities.  After z=346 all the intensities are 0, but I know this is not correct.  I can view the frames with Imagemagick's display program, and those at z>346 are not qualitatively different from the earlier ones.

After reading the image in I am using a pointer to the buffer to access the data:

p = (unsigned char *)(im->GetBufferPointer());

then I access the voxel value at (x,y,z) as p[z*xysize+y*width+x]

I have declared x, y, z, width and xysize = width*height all as long int.

Another way to show the problem: When the compressed tiff that looks correct when viewed with Imagemagick-display is read with ITK and then written without compression, the uncompressed version has blank frames for z>346.  This tiff has 693 frames, each 601x1380.  Exactly the same thing is seen with another tiff that has 693 frames each 779x1380 - again the uncompressed version is blank after frame 346.

I'd be interested to know if anyone else is reading big tiffs with ITK, on Linux.

Thanks
Gib
_______________________________________________
Community mailing list
Community at itk.org<mailto:Community at itk.org>
http://public.kitware.com/cgi-bin/mailman/listinfo/community

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20140306/f46535ae/attachment-0002.html>


More information about the Community mailing list