Difference between revisions of "Collaboration/UIowa/Non Rigid Registration"

From NAMIC Wiki
Jump to: navigation, search
 
(24 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
 
|[[Image:nirepsoftware.jpg|thumb|320px|Initial software development stage of the Non-rigid Image Registration Evaluation Project.]]
 
|[[Image:nirepsoftware.jpg|thumb|320px|Initial software development stage of the Non-rigid Image Registration Evaluation Project.]]
 +
|[[Image:Logo2skull.jpg|thumb|320px|NIREP application splash screen]]
 +
|[[Image:NIREPCodeexample.jpg|thumb|320px|Example code of the NIREPImageGridViewer class]]
 +
|[[Image:NIREPGridClass.jpg|thumb|320px|NIREPImageGridViewer class summary]]
 
|}
 
|}
 
 
 
__NOTOC__
 
__NOTOC__
 
===Key Investigators===
 
===Key Investigators===
Line 12: Line 13:
 
*James Harris (main NIREP software developer)
 
*James Harris (main NIREP software developer)
 
*Jeff Hawley (NIREP software developer)
 
*Jeff Hawley (NIREP software developer)
*Sandy Wells, BWH
+
*Luis Ibanez, Kitware
 
*Stephen Aylward, Kitware
 
*Stephen Aylward, Kitware
 +
*Steve Pieper, Isomics
 +
*Jim Miller, GE
 +
  
  
Line 40: Line 44:
 
</div>
 
</div>
  
<div style="width: 40%">
+
<div style="width: 40%; float: right">
  
 
<h1>Progress</h1>
 
<h1>Progress</h1>
  
*We replaced NIREP current visual studio project architecture with CMake cross-platform make system.
+
* Used the ITK, VTK, KWWidgets and SLICER3 architectures for implementing NIREP software.
*We replaced the itk to vtk import C function with itkImageToVTKImageFilter class.
+
** Replaced NIREP current visual studio project architecture with CMake cross-platform make system.
*We added Splash Screen.
+
** Updated the NIREP program to incorporate ITK to VTK.
*We maintain the vtkKWNIREPGridImageViewer and vtkKWNIREPImageViewerWithScrollbar class with addition methods:
+
** Removed hardcoding in the code and replaced it with ITK and VTK commands.
 
+
* Began the process of extending the functionality of ITK by implementing the AnaylzeObjectReader reader.
Implemented Method:
+
** Learned how to use CMake
vtkKWNIREPImageViewerWithScrollbar:: Tranverse();
+
** Implemented test suite and submissions to DART dashboard.
vtkKWNIREPImageViewerWithScrollbar:: Coronal ();
+
** SVN commits with multiple developers sharing responsibilities
vtkKWNIREPImageViewerWithScrollbar:: Sagittal ();
+
** Partial implementation is submited to the NAMIC Sandbox
vtkKWNIREPImageViewerWithScrollbar::SetFileName(string)
+
** ITK'ize the class and learned the Object model from ITK (LightObject, Object, DataObject, ProcessObject ...)
vtkKWNIREPImageViewerWithScrollbar::Update(string)
+
** Design of the AnalyzeOjbectReader reader is compliant with the ITK ImageIO mechanism, and will be documented in the Insight-Journal
 
+
* Began the process of extending ITK image streaming.
Updated Method:
+
** Partial implementation of the NIFTI streaming IO is submitted in NAMIC Sandbox
vtkKWNIREPImageViewerWithScrollbar:Printself(ostream,vtkIndent)
+
* Due to the extremely poor performance of Vista, Gary decided to return his Vista laptop.
vtkKWNIREPGridImageViewer:: ReformatRowLabel()
 
Note: The ReformatRowLabel method inserts newline into the string for vertical viewing.
 
vtkKWNIREPGridImageViewer::Add(string fn, int r, int c)
 
vtkKWNIREPGridImageViewer:: Remove(vtkKWNIREPImageViewerWithScrollbar)
 
vtkKWNIREPGridImageViewer:: SetSize(int w, int h)
 
 
 
 
</div>
 
</div>
  

Latest revision as of 14:53, 13 July 2007

Home < Collaboration < UIowa < Non Rigid Registration
Initial software development stage of the Non-rigid Image Registration Evaluation Project.
NIREP application splash screen
Example code of the NIREPImageGridViewer class
NIREPImageGridViewer class summary

Key Investigators

  • Gary Christensen, Iowa (NIREP principal investigator)
  • Hans Johnson, Iowa
  • Xiujuan Geng (main NIREP metric software developer)
  • James Harris (main NIREP software developer)
  • Jeff Hawley (NIREP software developer)
  • Luis Ibanez, Kitware
  • Stephen Aylward, Kitware
  • Steve Pieper, Isomics
  • Jim Miller, GE


Objective

We have started the Non-rigid Image Registration Evaluation Project (NIREP) to develop software tools and provide shared image validation databases for rigorous testing of non-rigid image registration algorithms. NIREP will extend the scope of prior validation projects by developing evaluation criteria and metrics using large image populations, using richly annotated image databases, using computer simulated data, and increasing the number and types of evaluation criteria.


Approach, Plan

The goal of this project is to establish, maintain, and endorse a standardized set of relevant benchmarks and metrics for performance evaluation of nonrigid image registration algorithms. Furthermore, these standards will be incorporated into an exportable computer program to automatically evaluate the registration accuracy of nonrigid image registration algorithms.

Our goal for this week is to build a prototype software package that contains the following functionality:

  • Database manager that interfaces with the evaluation database, the database of transformations for each algorithm, stores generated results, manages loading of images, manages memory, expands transformations from coefficient files, handles requests from other NIREP components, keeps track of operations using an XML (MRML) description.
  • Display manager is responsible for displaying images, landmarks, contours, surfaces, and associated semantic information. It also displays metric information in various formats. The display is described in an XML (MRML) description.
  • Evaluator is responsible for all the computational aspects of image manipulation and computing metrics.
  • Application interface is a basic menu system for invoking and configuring the display manager and evaluator.


Progress

  • Used the ITK, VTK, KWWidgets and SLICER3 architectures for implementing NIREP software.
    • Replaced NIREP current visual studio project architecture with CMake cross-platform make system.
    • Updated the NIREP program to incorporate ITK to VTK.
    • Removed hardcoding in the code and replaced it with ITK and VTK commands.
  • Began the process of extending the functionality of ITK by implementing the AnaylzeObjectReader reader.
    • Learned how to use CMake
    • Implemented test suite and submissions to DART dashboard.
    • SVN commits with multiple developers sharing responsibilities
    • Partial implementation is submited to the NAMIC Sandbox
    • ITK'ize the class and learned the Object model from ITK (LightObject, Object, DataObject, ProcessObject ...)
    • Design of the AnalyzeOjbectReader reader is compliant with the ITK ImageIO mechanism, and will be documented in the Insight-Journal
  • Began the process of extending ITK image streaming.
    • Partial implementation of the NIFTI streaming IO is submitted in NAMIC Sandbox
  • Due to the extremely poor performance of Vista, Gary decided to return his Vista laptop.



References

This work was supported in part by NIH grants EB004126, CA096679 and HL64368.