Volume Visualization

I’ve been spending most of my time lately trying to figure out a way to visualize some volume data from the tissue segmentation project. The problem is, we have two images: the original and the processed; abnormally bright or light pixels in the processed image indicate that the tissue at that point is abnormal, and from looking at those pixels in the original image, we can determine whether the tissue is lipid or calcium. We’d like to color code lipid as yellow and calcium as blue. For 2d slices of the volume data, this is a trivial piece of Matlab code, and we can just as easily determine the color at each point in the volume, but it’s been proving extremely hard to find a program that can visualize it correctly.

It seems that most free volume visualization software is based on the principle of look up tables, which means they cannot use information on the location of a pixel to determine the color, only an intensity level in that pixel. Essentially, they assign colors by mapping from a grayscale range to the standard RGB space. This wouldn’t be so bad if I could render two volume images on top of each other– then I could have one representing the intensity of yellow and the other the intensity of blue. Unfortunately, this is yet another unavailable feature.

After Microview, OpenDX, and SciRun all turned out to be inadequate, I tried Teem and looked into VolPack. While not exactly a waste of time– definitely OpenDX seems to be worth investigation as a platform for any future visualization tasks I have, and Teem is attractive and powerful in the way only clever Unix commandline toolkits can be– I wasn’t able to find software that could solve my problem. Until today, when I ran across Andrew Winter’s vlib. If anything can solve my problem, that probably can. I didn’t know volume rendering could be so powerful– vlib seems to be able to serve as a general purpose renderer in the style of POV-Ray.

Leave a Reply