Image Registration Lecture 7: Getting Started with ITK March 15, 2005 Prof. Charlene Tsai.

Slides:



Advertisements
Similar presentations
Doxygen. Links
Advertisements

ITK Architecture Kitware Inc.. ITK Basics C++ Generic Programming Data Pipeline Multi-threading Streaming Exceptions Events / Observers Tcl, Python and.
Getting Started with ITK + VTK
ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
National Alliance for Medical Image Computing Slicer3 Architecture.
1 Welcome to the Insight Toolkit! ITK Lecture 1 - Getting Started Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring.
This work by John Galeotti and Damion Shelton, © , was made possible in part by NIH NLM contract# HHSN P, and is licensed under a Creative.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
This work by John Galeotti and Damion Shelton was made possible in part by NIH NLM contract# HHSN P, and is licensed under a Creative Commons.
1 ITK Lecture 7 - Writing Filters, Part 1 Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods.
National Alliance for Medical Image Computing ITK The Image Segmentation and Registration Toolkit Julien Jomier Kitware Inc.
CSci 6971: Image Registration Lecture 6: Getting Started with ITK January 30, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
CSci 6971: Image Registration Lecture 8: Image Resampling February 3, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
1 Session-4 CSIT 121 Spring 2006 Debugging Tips Lab Work.
Introduction to ITK Casey Goodlett (with help from others as listed in references)
ITK Lecture 12: Open Source & Cross Platform Software Development Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring.
1 ITK Lecture 2 A brief C++ review Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods in Image.
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
NA-MIC National Alliance for Medical Image Computing Slicer Custom Modules Steve Pieper, PhD.
Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.
1 ENG236: ENG236: C++ Programming Environment (2) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
Getting Started with ITK in Python Language
GPU Acceleration in ITK v4
Dr. Engr. Sami ur Rahman Assistant Professor Department of Computer Science University of Malakand Medical Imaging ITK.
BioPSE NCRR SCIRun: Getting Started Installation and Configuration J. Davison de St. Germain (801)
VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001.
Introduction to NS2 -Network Simulator- -Prepared by Changyong Jung.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
NA-MIC National Alliance for Medical Image Computing Slicer3 and the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical Planning.
How to Install ITK ? (Insight Segmentation and Registration Toolkit) Prepared by: Hussain Rahman MS (CS) 1 st semester Supervised.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
JCreator Tonga Institute of Higher Education. Programming with the command line and notepad is difficult. DOS disadvantages  User Interface (UI) is not.
ITK Input/Output Kitware Inc.. Overview IO Factory Mechanism Image File IO Transform File IO SpatialObject File IO Logger.
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol,
Installing CompuCell3D from source Maciej Swat Biocomplexity Institute, Indiana University.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
Image Registration Lecture 11: VXL March 29, 2005 Prof. Charlene Tsai.
SimITK and SimVTK: ITK and VTK in Simulink DG Gobbi, P Mousavi, KM Li, J Xiang, A Campigotto, A LaPointe, G Fichtinger, P Abolmaesumi Medical Image Analysis.
ITK Introduction and Overview Spring Topics  What Is ITK History Features  Software Engineering Methodology.
Programming with Visual Studio.NET A short review of the process.
NA-MIC National Alliance for Medical Image Computing Slicer and ITK Raul San Jose.
GUI With GTK+ Under Linux Fanfan Xiong. Introduction GTK+ (GIMP toolkit) : A library for creating graphical user interfaces(GUI) Two examples developed.
Slicer3 for developers – S.Pujol -1- National Alliance for Medical Image Computing Slicer3 Course for developers Sonia Pujol, Ph.D. Surgical Planning Laboratory.
NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD.
C++ / G4MICE Course Session 1 - Introduction Edit text files in a UNIX environment. Use the g++ compiler to compile a single C++ file. Understand the C++
NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD.
1 Getting Started with C++ Part 1 Windows. 2 Objective You will be able to create, compile, and run a very simple C++ program on Windows, using Microsoft.
ITK Basic Filters Kitware Inc.. ITK Basic Filters Pixel-wise Arithmetic, Casting, Thresholding Mathematical morphology Noise reduction Gaussian, Anisotropic.
Read a DICOM File typedef unsigned charInputPixelType; const unsigned intInputDimension = 2; typedef itk::Image InputImageType; typedef itk::ImageFileReader.
ITK Statistical Classification Kitware Inc.. Statistical Classification Multiple Components Images K-Means Markov Random Fields.
Hernán García CeCalcULA Universidad de los Andes.
National Alliance for Medical Image Computing Slicer3 Plugins Common architecture for interactive and batch processing.
NA-MIC National Alliance for Medical Image Computing Three ways to use the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical.
SimTK 1.0 Workshop Downloads Jack Middleton March 20, 2008.
 CSC 215 : Procedural Programming with C C Compilers.
The Insight Toolkit Case Study Dr. Luis Ibanez, Kitware /
Insight Toolkit Introduction Luis Ibáñez William Schroeder Insight Software Consortium.
CSC 215 : Procedural Programming with C
Lecture 4 Getting Started with ITK!
National Library of Medicine Segmentation and Registration Toolkit
Cmake Primer.
ITK-Overview Insight Software Consortium.
ITK Architecture Kitware Inc..
Getting Started: Developing Code with Cloud9
ITK Workshop Software Design October 5-8, 2005.
Lecture 4 Getting Started with ITK!
SPL – PS1 Introduction to C++.
Presentation transcript:

Image Registration Lecture 7: Getting Started with ITK March 15, 2005 Prof. Charlene Tsai

Image RegistrationLecture 6 2 The Insight Toolkit The Segmentation and Registration Toolkit

Image RegistrationLecture 6 3 What is ITK ?  Image Processing  Segmentation  Registration  No Graphical User Interface (GUI)  No Visualization

Image RegistrationLecture 6 4 ITK Sponsors The National Science Foundation The National Institute for Dental and Craniofacial Research The National Institute of Neurological Disorders and Stroke

Image RegistrationLecture 6 5 ITK Developers

Image RegistrationLecture 6 6 ITK Developers * indicates a subcontractor.

Image RegistrationLecture 6 7 The Insight Toolkit Starting with ITK

Image RegistrationLecture 6 8 Integrating ITK in your application C++ Glue Code ITK Image Processing GUI {MFC,Qt, wxWin FLTK} Visualization {OpenGL, VTK}

Image RegistrationLecture 6 9 What do I need ? C++ Compiler gcc 2.95 – 3.3 Visual C Visual C VC Intel 5.0 IRIX CC Borland 5.0 Mac - gcc CMake

Image RegistrationLecture 6 10 Downloading ITK Live on the Edge CVS Stability Release tar files Insight.tgz CVS anonymous Or download the not-very-recent copy from the course website

Image RegistrationLecture 6 11 Configuring ITK Source Tree ITK Common Algorithms BasicFilter Numerics IO ITKb Common Algorithms BasicFilter Numerics IO Binary Tree Recommended ! Out Source Build In Source Build

Image RegistrationLecture 6 12 Configuring ITK – MS-Windows  Run CMake  Select the SOURCE directory  Select the BINARY directory  Select your Compiler

Image RegistrationLecture 6 13 Configuring ITK – MS-Windows

Image RegistrationLecture 6 14 Configuring ITK – MS-Windows  Disable BUILD_EXAMPLES  Disable BUILD_SHARED_LIBS  Disable BUILD_TESTING  Click “Configure” to configure  Click “OK” to generate project files

Image RegistrationLecture 6 15 Configuring ITK – Unix  Create the BINARY directory (mkdir)  Change directory to the BINARY directory (cd)  Set the environment variables CC and CXX setenv CC /usr/bin/gcc; setenv CXX /usr/bin/g++ OR export CC=/usr/bin/gcc; export CXX=/usr/bin/g++  Type ccmake with argument the SOURCE directory

Image RegistrationLecture 6 16 Configuring ITK – Unix

Image RegistrationLecture 6 17 Configuring ITK – Unix  Disable BUILD_EXAMPLES  Disable BUILD_SHARED_LIBS  Disable BUILD_TESTING  Type “c” to configure  Type “g” to generate the Makefiles  Type “make” to start building

Image RegistrationLecture 6 18 Building ITK

Image RegistrationLecture 6 19 Building ITK  Open ITK.dsw in the Binary Directory  Select ALL_BUILD project  Build it …It will take about 15 minutes …

Image RegistrationLecture 6 20 Building ITK

Image RegistrationLecture 6 21 Building ITK  Open ITK.sln in the Binary Directory  Select ALL_BUILD project  Build it …It will take about 15 minutes …

Image RegistrationLecture 6 22 Building ITK  Most of ITK classes are C++ Templates  Basic libraries are small they only contain non-templated classes  Basic libraries are built in about 15 min

Image RegistrationLecture 6 23 Verifying the Built Libraries will be found in In MS-Windows ITK_BINARY / bin / { Debug, Release } In UNIX ITK_BINARY / bin /

Image RegistrationLecture 6 24 Verifying the Built  ITKCommon  ITKBasicFilters  ITKAlgorithms  ITKNumerics  ITKFEM The following libraries should be there  ITKIO  ITKStatistics  ITKMetaIO  itkpng  itkzlib

Image RegistrationLecture 6 25 Using ITK – Hello World (Review) Create “CMakeLists.txt” & cxx files In the source directory Run CMake Select Source Dir Select Binary Dir

Image RegistrationLecture 6 26 Using ITK – Hello World  Accept the default in CMAKE_BACKBARD_COMPATIBILITY  Leave empty EXECUTABLE_OUTPUT_PATH  Leave empty LIBRARY_OUTPUT_PATH  Set ITK_DIR to the binary directory where ITK was built

Image RegistrationLecture 6 27 Building the HelloWorld Project  Open HelloWorld.dsw (or.sln) generated by CMake  Select ALL_BUILD project  Build it …It will take about 3 seconds …  Locate the file HelloWorld.exe  Run it…  It should produce the message: ITK Hello World !

Image RegistrationLecture 6 28 How to Find What Your Need  Follow the link Alphabetical List  Follow the link Groups  Post to the insight-users mailing list

Image RegistrationLecture 6 29 Doxygen Documentation

Image RegistrationLecture 6 30 Doxygen Groups

Image RegistrationLecture 6 31 Doxygen Alphabetical List

Image RegistrationLecture 6 32 ITK Architecture

Image RegistrationLecture 6 33 ITK Basics  C++ Generic Programming  Data Pipeline  Multi-threading  Streaming  Exceptions  Events / Observers  Tcl and Python wrapping

Image RegistrationLecture 6 34 Generic Programming Example: STL Standard Template Library Abstraction of Types and Behaviors std::vector

Image RegistrationLecture 6 35 ITK Image Class itk::Image itk::Image, 2 >

Image RegistrationLecture 6 36 C++ Namespaces Avoid naming collisions itk:: itk::Statistics:: itk::fem:: itk::fem::itpack itk::bio NEVER DO: using namespace itk; using namespace std;

Image RegistrationLecture 6 37 ITK Most Common Keyword typedef typedef itk::Image ImageType typedef itk::ImageFilter FilterType otherwise... itk::ImageFilter, Image > FilterType

Image RegistrationLecture 6 38 Smart Pointers Object Smart Pointer counter=0counter=1counter=2counter=3 Self - Delete

Image RegistrationLecture 6 39 Smart Pointers typedef itk::Image ImageType typedef itk::ImageFilter FilterType FilterType::Pointer filter = FilterType::New(); ImageType::Pointer image = filter->GetOutput(); NO NEED FOR filter->Delete();

Image RegistrationLecture 6 40 Const Correctness Knowing constancy is Insight. Not knowing constancy leads to disaster. Tao Te Ching, XVI. Lao Tsu

Image RegistrationLecture 6 41 Const Smart Pointers typedef itk::Image ImageType typedef itk::ImageFilter FilterType FilterType::Pointer filter = FilterType::New(); ImageType::ConstPointer image = filter->GetOutput(); Can only invoke “const” methods image->GetSpacing (); Compiler error for “non-const” methods image->SetSpacing ( spacing );

Image RegistrationLecture 6 42 Data Pipeline Image Filter Image Filter Image Filter

Image RegistrationLecture 6 43 Image Regions LargestPossibleRegion BufferedRegion RequestedRegion

Image RegistrationLecture 6 44 Streaming Output Image Filter Processing Large Images Input Image

Image RegistrationLecture 6 45 Simple Image IO Image File ImageFileReader Image Filter Image File ImageFileWriter

Image RegistrationLecture 6 46 Simple Image IO CustomImageIO Image File ImageFileReader Image PNGImageIO VTKImageIODICOMImageIOGIPLImageIO MetaImageIOAnalyzeImageIO Loadable Factories

Image RegistrationLecture 6 47 Simple Image IO #include “itkImage.h” #include “itkImageFileReader.h” #include “itkImageFileWriter.h” typedef itk::Image ImageType; typedef itk::ImageFileReader ReaderType; typedef itk::ImageFileWriter WriterType; ReaderType::Pointer reader = ReaderType::New(); WriterType::Pointer writer = WriterType::New(); reader->SetFileName( “inputImage.dcm” ); // DICOM writer->SetFileName( “outputImage.hdr” ); // Analyze writer->SetInput( reader->GetOutput() ); writer->Update();

Image RegistrationLecture 6 48 Exceptions Error Management ITK Layer Application Layer

Image RegistrationLecture 6 49 Exceptions try { filter->Update(); } catch( itk::ExceptionObject & exp ) { std::cerr << exp << std::endl; }

Image RegistrationLecture 6 50 Events and Commands/Observers Itk::Object Itk::Command itk::Command Event

Image RegistrationLecture 6 51 Events Common Events AnyEvent() StartEvent() EndEvent() ProgressEvent() IterationEvent()

Image RegistrationLecture 6 52 Events and Commands/Observers Itk::Object Itk::ProcessObject Itk::FilterXY Itk::Command MyCommand Execute() AddObserver( ) AnyEvent MyEvent

Image RegistrationLecture 6 53 GUI Communication ITK Layer GUI Layer Widget FilterX Callback Command FilterX Widget Observer

Image RegistrationLecture 6 54 End Enjoy ITK !