Assignment 2 – Volume visualisation

Requirements to pass: Present a working solution to one of the lab assistants (Fredrik or Raphaela) during the lab sessions.

The pdf version for this assignment is found here.

Please also look at the pdf for more info and images!


Download and extract the following zip-files ( and that contain the datasets for the assignment.



In this part you will visualize a CT-scan of the abdominal region of a human. You will also visualize a pre-segmented “mask” that shows where in the volume the liver is located. This type of visualisation could for example be used by a physician to verify that the mask, which might have been generated with an automatic segmentation algorithm, is correct. The CT scan, ctscan_ez.vtk, is stored as a vtkStructuredPoints dataset of signed 16-bit data (short) representing Hounsfield units. The segmented liver is represented as a binary 8-bit (unsigned char) volume, ctscan_ez_bin.vtk, where the liver voxels have the value 255 and the background voxels have the value 0.

Applying a contour filter directly to the binary liver segmentation will result in an isosurface with a lot of aliasing. Therefore, you should also compare this visualisation with a visualisation of a pre-filtered (Gaussian smoothed) version of the segmentation, ctscan_ez_smooth.vtk. To see how the smoothed volume was generated, you can take a look at the script

Part 1 – Task
  • Add a multi-planar reformatting (MPR) visualisation of the CT volume (using the Slice filter). The MPR should contain one slice plane per image axis.
  • Add a colormap (with a colorbar) that maps the 16-bit CT Hounsfield values to grayscales.
  • Inspect the slices of the MPR by toggling Hover Points On (small icon with a dot and a question mark) in the RenderView window.
  • Add an isosurface rendering of the binary liver segmentation volume (using the Contour filter).
  • Compare the previous isosurface with a smoother version, by adding a second isosurface rendering for the smoothed liver segmentation volume (using the Contour filter).
  • Add an outline that shows the extent of the volume.


In this part you should investigate the volume rendering capabilities of Paraview. You can use the CT dataset from the first part above if you want, or the foot.vtk (CT) or brain.vtk (MRI) datasets provided in the zip-file. The aim is to create a visualisation that displays several structures in a volume by using transparency and different colors. For a CT scan this could be, for example, skin, bone, and fat. For an MRI scan this could be peaks in the image histogram. To solve this task, you need to create a custom transfer function (colormap) in ParaView and fine-tune it for your dataset.

Part 2 – Task
  • Select one of the datasets above (CT or MRI). Load the dataset into ParaView and activate the volume rendering mode by selecting Volume under Representation.
  • Design a custom transfer function for your dataset. For CT data, the function should highlight features such as skin, fat, and bone of different densities. For MRI data, you can use the Histogram filter to find interesting peaks in the data to highlight.
  • Enable shading of the volume by selecting Shade under Volume Rendering properties (you can skip this step if you are using the MRI data).
  • Add an outline that shows the extent of the volume.