Collaboration/UIowa/Developing a GUI for non-rigid image registration programs using NA-MIC Kit

From NAMIC Wiki
Revision as of 14:56, 13 July 2007 by Tkapur (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Collaboration < UIowa < Developing a GUI for non-rigid image registration programs using NA-MIC Kit
Before vs after registration.jpg
Before Registration
After Registration

Key Investigators

  • Gary Christensen, The University of Iowa
  • Kunlin Cao, The University of Iowa
  • Kai Ding, The University of Iowa
  • Xiujuan Geng, The University of Iowa
  • Paul Song, The University of Iowa
  • Hans Jonson, The University of Iowa
  • Yumin Yuan, Kitware


Learn how to use a professional software development process. Learn how to create GUIs to make our tools easier for others to use. Learn how to port our existing image registration & image processing libraries and tools to the ITK and VTK model. Learn how to package our programs so they run on different computer operating systems such as Windows, Linux, and Macintosh.

Approach, Plan

Our plan for the project week is to:

  • Learn about the image processing pipeline and memory management issues.
  • Learn about ITK file formats.
  • Learn how to read, write, and visualize images using NA-MIC tools.
  • Learn how to make GUIs ( Evaluate whether or not we need to write our own GUI using KWWidgets or can take advantage of slicer3 )
  • Develop an Analyze object map reader.
  • Learn how to use cpack.

The GUI should provide the following functionality:

  • Display the template and target images in 2D and 3D before registration for verification.
  • Display landmarks, contours, and surfaces to be used for registration and validation.
  • Allow the user to set various parameters.
  • Allow the user to label corresponding landmarks and contours (possibly surfaces in the future).
  • Display status and instant messages while the program is running, i.e., deforming images, difference images, Jacobian, displacement fields, deforming grid, graphs, etc.


  • Learned how to use CMake and SVN. Became familiar with ITK and VTK.
  • Used KWWidgets to develop a simple GUI.
  • Added a Slicer3 plug-in for our registration program.
  • Created a GUI to set parameters for the registration process and generated a parameter file for our registration program input.
  • Applied a command to the Slicer3 GUI to run our registration program in the background.


This work is supported in part by NIH grants EB004126, HL079406, HL64368, HL080285, and HL073598.

  • G.E. Christensen, H.J. Johnson. Consistent Image Registration, IEEE TMI, 20(7), 2001, pp 568-582.
  • H.J. Johnson, G.E. Christensen. Consistent Landmark and Intensity-based Image Registration, IEEE TMI, 21(5), 2002, pp. 450-461.
  • G.E. Christensen, H.J. Johnson and M.W. Vannier, Synthesizing average 3D anatomical shapes, NeuroImage, 32, 2006, pp. 146-158.