[SciPy-User] Arbitrary max-intensity projection

Christoph Gohlke cgohlke@uci....
Mon Sep 12 14:59:40 CDT 2011

On 9/8/2011 3:29 PM, Chris Weisiger wrote:
> I have a 3D volume of image data. I want to do a max-intensity
> 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 reimplementing
> 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

An alternative to using a 3D raycaster, VTK, or OpenGL is the 
"Shear-Warp" algorithm:


Two implementations in C, which could possibly be wrapped for Python:


The algorithm looks simple enough to be implemented in numpy and 
ndimage. See the appendix of the first paper for a start.


More information about the SciPy-User mailing list