[vtkusers] Bug in vtkTIFFReader reading multi-paged tiff file

David Gobbi david.gobbi at gmail.com
Thu Jan 16 15:24:49 EST 2014


Are you using vtk-master (or perhaps a vtk 6.1 release candidate)?
The TIFF reader had a serious multi-frame bug in older versions.

First, note that the vtkTIFFReader doesn't just give you the raw data
from the files, it seems to pass it through a lookup table sometimes.
And I'm not sure exactly how it deals with alpha, and to be honest,
I wouldn't trust it.

I'm really not sure what you mean when you say "The order of adding
the actors to the renderer matters, but I try to avoid this by using
transparency."  The order in which you add images is _crucial_ when
you are using transparency.

Are you using the vtkImageStack?  It's a class that is designed
specifically to handle layered rendering of images.

  David



On Thu, Jan 16, 2014 at 12:40 PM, Maarten Beek <beekmaarten at yahoo.com> wrote:
> Hi David,
>
> Is it possible to show all images in a multi-paged tiff transparently?
>
> Only when I show the 1st image (page), I see a 2nd 2d image (both are
> transparent).
> As soon as I move to another tiff image (page), the 2d image disappears. It
> returns when I move back to the 1st tiff page.
>
> The multi-paged tiff is one component, and I am thinking of an algorithm to
> add an alpha component, but can hardly believe this would be required...
>
> The order of adding the actors to the renderer matters, but I try to avoid
> this by using transparency.
>
> Moving one image in front of the other by changing its z-coordinate using
> vtkImageActor::SetPosition() doesn't help.
>
> Maarten
>
>
>
> On Friday, November 8, 2013 4:36:06 PM, Maarten Beek <beekmaarten at yahoo.com>
> wrote:
> Hi David,
>
> Using VTK 6.0.0, sorry ;-)
>
> Should I send you the tiff file so you can play with it?
>
> Now I seem to have your attention:
>
> - How do I display a multi-page tif? I don't seem to see the different
> images using a vtkImageSlice.
>
> - What would be good values for the window and level parameters? I am using
> window = range[1]-range[0] and level = 0.5*(range[0]+range[1]) which works
> ok for this multi-page tif, but gets me nowhere when I try to display a drr.
>
> Thanks - Maarten
>
>
>
>
>
> On Friday, November 8, 2013 4:23:23 PM, David Gobbi <david.gobbi at gmail.com>
> wrote:
> Hi Maarten,
>
> Which version of VTK are you using?  I believe that this bug has been
> fixed in the master branch by a commits in the following topic merge:
> http://vtk.org/gitweb?p=VTK.git;a=commitdiff;h=7e3d5270
>
> It was not fixed in time for VTK 5.10, however.
>
>   David
>
>
> On Fri, Nov 8, 2013 at 2:12 PM, Maarten Beek <beekmaarten at yahoo.com> wrote:
>> Hi all,
>>
>> vtkTIFFReader crashed for me while loading a multi-paged tiff file.
>>
>> The crash occured in vtkTIFFReader::ReadGenericImage(), because
>> this->OutputExtent was not set (still NULL).
>> The scalar type for the image I was loading was unsigned short, so it
>> happened at line 1368.
>>
>> I changed void vtkTIFFReader::ReadVolume(void* buffer) into void
>> vtkTIFFReader::ReadVolume(void* buffer, int outExt[6]) and added the line
>> this->outputExtent = outExt.
>>
>> This solved my crash.
>> I am not sure I am on to something, but thought to let you know.
>>
>> Maarten


More information about the vtkusers mailing list