[vtkusers] voxel values in vtkImageData

Thomas Faust tf at thermoanalytics.com
Thu May 6 18:55:25 EDT 2004


>There is no way to get around that, apart from...
There is... The last think I would do and the last thing I want to do is to 
write my own vtkVolumeMapper, that handles vtkImageData like I want. I did 
the same with vtkPicker before. I was writing my own, that runs a ray through 
voxels using the 'voxel traversal algorithm'. I made major changes in 
vtkRenderWindow and vtkRenderWindowInteractor to implement it my out GUI.
But, this would really be the last thing if no workaound would help.

> If you zero-pad your image out to 5x5x5 you might be able to make it
> display a cross the way that you want.
Thanks for this advice. I'll give it a try by tomorrow. My coffee pot went 
empty ;-)

Thomas

On Thursday 06 May 2004 06:40 pm, you wrote:
> Hi Thomas,
>
> The 3-voxels-are-2-voxels-wide problem is something that you can't get
> away from in VTK, since as you stated below, VTK treats a vtkImageData as
> a set of points.  There is no way to get around that, apart from using
> a vtkUnstructuredGrid made of voxels which would be extremely inefficient.
> The vtkImageActor has the same behaviour as vtkVolume in this regard.
>
> Turning off interpolation, though, should at least eliminate the
> unwanted blending that you were seeing.
> If you zero-pad your image out to 5x5x5 you might be able to make it
> display a cross the way that you want.
>
>  - David
>
> On Thu, 6 May 2004, Thomas Faust wrote:
> > Thanks David, but this doesn't solve my problem at all.
> >
> > I was changing the interpolation method back and for, but the output
> > didn't changed.
> >
> > I'm not dealing with values that are defined on the gridpoints; my values
> > are the voxel itself.
> >
> > I'll give you (David and all out there) an example:
> > My matrix is 3x3x3 with the values: 000 010 000 - 010 111 010 - 000 010
> > 000 Do I expect to much brain grease if i would ask you to picture this
> > values in your imagination in 3D? Right, this is an 3D cross.
> > But, if this is my vtkImageData I'll get a volume, that is just 2 voxels
> > in each direction. Please give it a try. (I'll at the 15 line source code
> > if you want me to)
> >
> > What I'd like to see as an output is an volume, that comes with 27
> > (3x3x3) voxel. This means that this volume would have 64 (4x4x4)
> > gridpoints. What I told about interpolation is, that i can't interpolate
> > these 64 gridpoints out of the 27 values to create my own new
> > vtkImageData.
> > It's all about the interpretation of values in vtkImageData by
> > vtkVolumeMapper.
> >
> > Thanks for your efforts.
> > Thomas
> >
> > On Thursday 06 May 2004 05:56 pm, you wrote:
> > > Hi Thomas,
> > >
> > > It looks like all you need to do is turn off interpolation:
> > >
> > > volume->GetProperty()->SetInterpolationTypeToNearest();
> > >
> > > On Thu, 6 May 2004, Thomas Faust wrote:
> > > > Hi VTK users,
> > > >
> > > > Lately I'm confronted with volume rendering. I decided to use VTK as
> > > > graphical tool to render a huge mass of data. So far, I'm impressed
> > > > by the power and usability of VTK.
> > > >
> > > > My problem is the handling of vtkImageData in vtkVolumeMapper.
> > > > My model is created by a collection of values in 3 directions
> > > > (x,y,z). These are stored in vtkImageData.
> > > > I expect a volume that extent 3 values(voxels) in each direction to
> > > > be 3 length units long. But it isn't (It's just 2). The reason for
> > > > this is, that the vtkVolumeMapper interprets 3 points in one
> > > > direction as 3 corner points (vertices) of voxels. So I end up with 2
> > > > voxels that are a mixture between my original values.
> > > >
> > > > The problem is that a interpolation between these values is not a
> > > > option, because two values that are even close together means totaly
> > > > different things. (e.g. 0x40 is material A, 0x41 is material B)
> > > >
> > > > How can I change one of the vtkVolumeMappers to interpret the values
> > > > in vtkImageData to be voxel-based and not vertex-based?
> > > >
> > > > Any comments are welcome and will be answered.
> > > > Thanks in advance
> > > > _______________________________________________
> > > > This is the private VTK discussion list.
> > > > Please keep messages on-topic. Check the FAQ at:
> > > > <http://public.kitware.com/cgi-bin/vtkfaq> Follow this link to
> > > > subscribe/unsubscribe:
> > > > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> > <http://public.kitware.com/cgi-bin/vtkfaq> Follow this link to
> > subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers



More information about the vtkusers mailing list