3D Medical Imaging

Notes

mraWindows

  • This software requires a graphics card that has texture units. Most modern NVidia and ATI cards are fine, but most Intel cards are not supported.
  • Some laptops include both discrete and integrated graphics cards. You should use MRIcroGL with the discrete card enabled. For example, some Sony laptops MRIcroGL will run on ‘Speed’ mode but not on ‘Stamina’ mode.

OSX

  • This code only supports Intel CPUs. PowerPC computers are not supported.
  • Many inexpensive Macs do not include graphics cards with Texture units. Therefore, this software will not run on pre-2009 plastic MacBooks and Mac Minis.
  • The original iMacs and MacBooks include ATI GPUs that will initially run this software very slowly. On these computers, you can choose Help/Options and check the “Power-of-two (old video card)” checkbox (see performance notes below).

Linux

  • I have only had success with the proprietary Linux graphics drivers.
  • I have not had success getting MRIcroGL for Linux to work with ATI graphics cards. For example, I failed with Fedora 10 and a ATI 4850, even though the system generated volume renderings with MedINRIA and could use my software when running Windows. I have had better luck with NVidia on Linux.
  • A 64-bit Linux build is available from the NITRC website, but this does not support scripting.

Performance

  • If your volume-rendering is slow, choose Help/Options… and check the “Power-of-two (old video card)” checkbox. Images will now be loaded so all dimensions are n^2. For example, an image with 109 voxels in one dimension will be padded so that this dimension is 128-voxels. This option greatly increases performance on older video cards, but impairs performance on modern cards. To check whether this helps, choose Render/RotationAnimation with the power-of-two function on versus off. The frames-per-second is reported in the title bar.
  • To accelerate volume rendering, choose Help/Options… and check the “Low-resolution rendering” checkbox. This will use half the number of depth planes when rendering. This results in faster but blurrier renderings.
  • The speed of volume rendering is largely determined by the number of texture units. For comparison, a GeForce 8400M GS provides ~6 frames per second, a GeForce 8500 GT yields 17 fps, while the GeForce 9800 GTX and Radeon HD 4850 are only limited by the monitors refresh rate (>65 fps). To determine the number of texture units, check the Wikipedia pages for Radeon, GeForce, and Intel Graphics Media Accelerator cards.
  • One disadvantage of Radeon cards (relative to GeForce cards) is that they are much faster at rendering some views than others, so during realtime animations the rotation speed may appear to speed up and slow down (see Weiskopf et al., IEEE CGI (2004), 604-607) .
  • Current Intel graphics cards can not generate volume renderings for images larger than 128 voxels in any dimension. For this reason, when MRIcroGL starts it will display the warning “You are using an Intel graphics card - this is unlikey to support volume rendering. If your laptop supports hybrid graphics, switch to the discrete ATI/NVidia graphics card”. I expect that future Intel graphics cards will support high-resolution volume rendering. Therefore, I have added an option to remove the alert message - simply choose Help/Options… and uncheck the “Warn if video card is Intel” checkbox.

General

  • License: Chris Rorden’s MRIcroGL, copyright 2008, all rights reserved. Redistribution and use in binary forms, with or without modification, are permitted provided inclusion of the copyright notice, this list of conditions and the following disclaimer is provided with the distribution: Neither the name of the copyright owner nor the name of this project (MRIcroGL) may be used to endorse or promote products derived from this software without specific prior written permission.This software is provided by the copyright holder “as is” and any expressed or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
  • Development of this software was supported by the NIH NITRC.
  • My rendering web page includes sample Analyze format images, links to other images and links to other volume rendering applications.
  • MRIcroGL comes with a few sample images. There is a volume from the visible human project. The ch256 image is the MCBI the single subject T1 image, the CT is from the Chapel Hill Volume Rendering Test Dataset, and the T1, T2, statistical maps and MRA are from my lab.
  • This application is an extension of the Texture3D Demo, written by Jürgen Abel. His free MVE - Medical Volume Explorer also uses GLScene.
  • Most NIfTI programs can only read images where there is a single value per voxel (image intensity), in contrast MRIcroGL can read these images as well as RGB images which store red, green and blue intensities for every voxel. Other programs that can read RGB data are ImageJ, Jimmy Shen’s Matlab NIfTI viewer and MRIcron.

Updates

  • 6/2010: Memory leak fixed (problem when ~50 images loaded), faster opening images, OSX specific fixes (supports OSX as early as 10.4), improved bitmap saves. Video capture for all platforms (saves successive images as 2D bitmaps that can be combined with video editing).