Voxel visualization of brain hematoma [CT]

24Jan10

The 3rd semester of Computer Science on Wroclaw University of Technology brought to me an occasion to do something that was written for a long time in my Idealist.

After writing a 3d engine with Gouraud shading and per vertex Phong lightning model, which was the basis of evaluation of the graphics course, I’ve decided to do something more.

The topic was influenced by Dr. Eng. Martin Tabakow, who proposed visualizing volume information using 2D tomography scans data, segmented previously using his own algorithm.

I’ve been thinking a lot about how it could be done effectively, considering such ideas such as vertex representation using spline interpolation or adaptive surface tessellation, but after some searching and long discussions with Rychu (who is also my best personal debugger and saved me a lot of hours 🙂 ) I’ve decided to use Voxels with ray-casting as display method. After getting the basic version to work properly, I’ve added trilinear interpolation, per voxel shading and deeper raycasting (a bit slower) for getting the looks closer to those from marching cubes.

So at the end, the application takes a the segmented data, analysis it, makes interpolation in between and at the end, calulates normals accordingly to the neighboring voxels and light using Lambertian light model with attenuation. At display I’m using Smith’s cube intersection algorithm to determine the intersection points of the ray with the volume data. Then I interpolate from one point to another searching for the first non-null element and display it.

Here is the example input data:

And here are some sample results:

The application allows to move it freely and to switch from one mode to another, yet there are some things that I’d like to improve in future like a better interpolation shape and smoother edges, but maybe after some recovery from the ‘Java experience’.



4 Responses to “Voxel visualization of brain hematoma [CT]”

  1. Man, write something from time to time. I did, so do you should;)

  2. Hi to all, the contents existing at this web page are actually remarkable for people experience,
    well, keep up the nice work fellows.

  3. What’s Happening i’m new to this, I stumbled
    upon this I’ve discovered It positively useful and it has helped me out loads. I am hoping to give a contribution & assist different customers like its helped me. Great job.

  4. I do agree with all the concepts you’ve introduced to your post. They’re very convincing and can definitely work.
    Still, the posts are too brief for beginners. May just you please prolong them a
    little from subsequent time? Thank you for
    the post.


Leave a comment