National Alliance for Medical Image Computing Slicer3 Plugins Common architecture for interactive and batch processing.

Slides:



Advertisements
Similar presentations
AP Computer Science Anthony Keen. Computer 101 What happens when you turn a computer on? –BIOS tries to start a system loader –A system loader tries to.
Advertisements

Slicer3 for developers – Sonia Pujol, Ph.D. -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol, Ph.D. Surgical Planning.
National Alliance for Medical Image Computing Slicer3 plugins: Going Further Common architecture for interactive and batch processing.
Grid Wizard Enterprise GSlicer3 Tutorial. Introduction This tutorial assumes you already completed the basic and advanced tutorial. GSlicer3 is a Slicer3.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing Slicer3 Architecture.
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School National Alliance for Medical Image Computing ©2010,ARR
NA-MIC National Alliance for Medical Image Computing © 2010, All Rights Reserved Diffusion Tensor Imaging Tutorial Sonia Pujol, Ph.D.
C Language.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
Procedures and Functions. What are they? They are both blocks of code that can be reused to perform specific task. However there is a difference: Function-
Modular Programming With Functions
Unions The storage referenced by a union variable can hold data of different types subject to the restriction that at any one time, the storage holds data.
National Alliance for Medical Image Computing Slicer MRML MRML Library provides API for managing medical image data types (Volumes, Models,
National Alliance for Medical Image Computing Anatomy of a plugin Common architecture for interactive and batch processing.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
NA-MIC National Alliance for Medical Image Computing Slicer Custom Modules Steve Pieper, PhD.
Python quick start guide
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
NA-MIC National Alliance for Medical Image Computing Large-Scale Computing Frameworks for Developing Image Analysis Tools Steve Pieper,
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
By Sidhant Garg.  C was developed between by Dennis Ritchie at Bell Laboratories for use with the Unix Operating System.  Unlike previously.
NA-MIC National Alliance for Medical Image Computing Slicer3 and the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical Planning.
NA-MIC National Alliance for Medical Image Computing Slicer4 CLI Slicer Execution Model.
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol,
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.

V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
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.
GUIDED BY- A.S.MODI MADE BY- 1. SHWETA ALWANI 2. PRIYANKA.
Coupling Cohesion Chandan R. Rupakheti Steve Chenoweth (Chapter 18)
NA-MIC National Alliance for Medical Image Computing Slicer and ITK Raul San Jose.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Components Jim Miller GE Research.
1 Computer Science of Graphics and Games MONT 105S, Spring 2009 Lecture 17 Parameters, Scope, Return values.
Slicer3 for developers – S.Pujol -1- National Alliance for Medical Image Computing Slicer3 Course for developers Sonia Pujol, Ph.D. Surgical Planning Laboratory.
Distributed Computing With Triana A Short Course Matthew Shields, Ian Taylor & Ian Wang.
Programming into Slicer3. Sonia Pujol, Ph.D., Harvard Medical School National Alliance for Medical Image Computing ©
Data Structure and c K.S.Prabhu Lecturer All Deaf Educational Technology.
NA-MIC National Alliance for Medical Image Computing Diffusion Tensor Imaging tutorial Sonia Pujol, PhD Surgical Planning Laboratory.
Closed Loop Calibration Automatic Calibration Using ProCal.
Transformation System report Luisa Arrabito 1, Federico Stagni 2 1) LUPM CNRS/IN2P3, France 2) CERN 5 th DIRAC User Workshop 27 th – 29 th May 2015, Ferrara.
1 DIRAC Job submission A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
Sonia Pujol, PhD -1- National Alliance for Medical Image Computing Neuroimage Analysis Center Diffusion Tensor Imaging tutorial Sonia Pujol, Ph.D. Surgical.
ITK Basic Filters Kitware Inc.. ITK Basic Filters Pixel-wise Arithmetic, Casting, Thresholding Mathematical morphology Noise reduction Gaussian, Anisotropic.
NA-MIC National Alliance for Medical Image Computing Engineering a Segmentation Framework Marcel Prastawa.
NA-MIC National Alliance for Medical Image Computing Slicer3 Update
1 Essential Computing for Bioinformatics Bienvenido Vélez UPR Mayaguez Lecture 3 High-level Programming with Python Part III: Files and Directories Reference:
PYTHON FUNCTIONS. What you should already know Example: f(x) = 2 * x f(3) = 6 f(3)  using f() 3 is the x input parameter 6 is the output of f(3)
Chapter 1: Introduction to Computers and Programming.
NA-MIC National Alliance for Medical Image Computing Three ways to use the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical.
C++ Lesson 1.
‘C’ Programming Structures and Commands
CMPE Data Structures and Algorithms in C++ September 14 Class Meeting
Writing a File Format Reader for VisIt
Variables, Expressions, and IO
Functions CIS 40 – Introduction to Programming in Python
Programmazione I a.a. 2017/2018.
Installing the HI 6600 into the CompactLogix System.
פרטים נוספים בסילבוס של הקורס
For -G7 programing language Teacher / Shamsa Hassan Alhassouni.
פרטים נוספים בסילבוס של הקורס
Govt. Polytechnic,Dhangar
Govt. Polytechnic,Dhangar
Programming Language C Language.
COMPUTER PROGRAMMING SKILLS
Print the following triangle, using nested loops
NAC: Optimized registration in Slicer
Presentation transcript:

National Alliance for Medical Image Computing Slicer3 Plugins Common architecture for interactive and batch processing

National Alliance for Medical Image Computing Example module

National Alliance for Medical Image Computing Configuring example modules … from a Slicer3 installation… from a Slicer3 build

National Alliance for Medical Image Computing Building the example modules

National Alliance for Medical Image Computing Adding example modules to Slicer3 … from a Slicer3ExampleModules installation … from a Slicer3ExampleModules build * Slicer3 restart required

National Alliance for Medical Image Computing Running the modules

National Alliance for Medical Image Computing ExampleModule.xml

National Alliance for Medical Image Computing ExampleModule.cxx

National Alliance for Medical Image Computing ExampleModule.cxx

National Alliance for Medical Image Computing CMakeLists.txt

National Alliance for Medical Image Computing Communicating status (easy) #include "vtkPluginFilterWatcher.h"... vtkMarchingCubes *cubes = vtkMarchingCubes::New(); cubes->SetInput(reader->GetOutput()); vtkPluginFilterWatcher watchCubes(cubes, "Generate Isosurface", CLPProcessInformation,.5, 0.0); vtkDecimatePro *decimate = vtkDecimatePro::New(); decimate->SetInput(cubes->GetOutput()); vtkPluginFilterWatcher watchDecimate(decimate, "Reduce Triangle Count", CLPProcessInformation,.5, 0.5); decimate->Update(); VTK #include "itkPluginFilterWatcher.h... typedef itk::MedianImageFilter FilterType; FilterType::Pointer median = FilterType::New(); itk::PluginFilterWatcher watchMedian(median, "Denoise Image", CLPProcessInformation); Median->Update(); ITK

National Alliance for Medical Image Computing Communicating status (hard) name of program section or algorithm description of program section or algrotihm floating number from 0 to 1 name of program section or algorithm execution time Executable extern "C" { struct ModuleProcessInformation { /** Inputs from calling application to the module **/ unsigned char Abort; /** Outputs from the module to the calling application **/ float Progress; char ProgressMessage[1024]; void (*ProgressCallbackFunction)(void *); void *ProgressCallbackClientData; double ElapsedTime; } Shared object

National Alliance for Medical Image Computing Python modules XML = """ Filtering.Denoising... def toXML(): return XML; def Execute ( inputVolume, outputVolume, conductance=1.0, timeStep=0.0625, iterations=1 ): print "Executing Python Demo Application!" Slicer = __import__ ( "Slicer" ); slicer = Slicer.Slicer() in = slicer.MRMLScene.GetNodeByID ( inputVolume ); out = slicer.MRMLScene.GetNodeByID ( outputVolume ); filter = slicer.vtkITKGradientAnisotropicDiffusionImageFilter.New() filter.SetConductanceParameter ( conductance ) filter.SetTimeStep ( timeStep ) filter.SetNumberOfIterations ( iterations ) filter.SetInput ( in.GetImageData() ) filter.Update() out.SetAndObserveImageData(filter.GetOutput()) return

National Alliance for Medical Image Computing Parameters | | | | | | | | | | | [type="scalar|label|tensor|diffusion-weighted|vector|model"] | [type="fiberbundle|model"] | [multiple="true|false"] [coordinateSystem="lps|ras|ijk"] | [multiple="true|false"] [coordinateSystem="lps|ras|ijk"]

National Alliance for Medical Image Computing Parameter description * C++ variable name of the parameter * Help message for parameter * GUI label for the parameter Default value * Single character flag, e.g. –f * Single word flag, e.g. --outputImage Block around minimum/maximum/step. Trigger a slider to be used. Minimum parameter value Maximum parameter value Step size * Input or output parameter (image, geometry, file, directory) * Position of a parameter without a flag. Starts at 0 * Block around element * Choice value for an enumeration * Required tags * Required under certain conditions

National Alliance for Medical Image Computing Behind the scenes Tasks queued for processing thread Three types of modules: –executable, –shared object, and –Python modules Scalar images sent via files for executables and memory* for shared objects and python Vector images, tensor images, geometry, tables, transforms sent via files Scalars, file names, directories, fiducials, regions sent via command line * VTK-based modules using scalar images are only supported as executable (command line) modules.

National Alliance for Medical Image Computing Slicer3 Plugins Common architecture for interactive and batch processing