[SciPy-User] Arbitrary max-intensity projection
Thu Sep 8 22:13:32 CDT 2011
This gets even easier if you use mayavi
from enthought.mayavi import mlab
f = mlab.figure()
v = mlab.pipeline.volume(mlab.pipeline.scalar_field(data.astype('uint8')))
you can then use the pipeline tool to (graphically) change the "Volume mapper type" to "RayCastMapper" and the "Ray cast function type" to "RayCastMIPFunction". (There's probably also a programatic way to do this)
--- On Fri, 9/9/11, Christoph Gohlke <firstname.lastname@example.org> wrote:
> From: Christoph Gohlke <email@example.com>
> Subject: Re: [SciPy-User] Arbitrary max-intensity projection
> To: firstname.lastname@example.org
> Received: Friday, 9 September, 2011, 11:13 AM
> On 9/8/2011 3:29 PM, Chris Weisiger wrote:
> > I have a 3D volume of image data. I want to do a
> > projection of that data along an arbitrary axis (that
> is, not
> > necessarily orthogonal). For example, projecting along
> the axis<1, 0,
> > .5> would generate results like looking at
> the data a bit from above.
> > Basically we're faking 3D views of our data.
> > OpenGL 3D textures don't work due to the size of the
> image data in
> > question (e.g. 512x512x60). Someone suggested
> > Amanatides& Woo, which is a fairly simple
> voxel raytracer. However,
> > that doesn't mean it's trivial to implement, and I'd
> rather not
> > reinvent and optimize the wheel if at all possible.
> Does anyone have
> > any suggestions for known solutions to this problem?
> > -Chris
> Did you try VTK's vtkVolumeRayCastMIPFunction function as
> suggested before?
> OpenGL 3D textures should work if you successively render
> sub-volumes in
> the correct position and order. MIP can also be implemented
> object-aligned 2D textures.
> SciPy-User mailing list
More information about the SciPy-User