Proposals:IDL Interface: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__TOC__
__TOC__
= Background =


''' Creating an Interface between ITK and IDL '''
''' Creating an Interface between ITK and IDL '''
Line 10: Line 12:


= Features =
= Features =
== Functionality Wish List ==


Please help us craft the interface to make sure that it will be useful for your applications. Add to the list below your ideas on things that you will like to have available.
Please help us craft the interface to make sure that it will be useful for your applications. Add to the list below your ideas on things that you will like to have available.


== Image Segmentation ==
=== Filtering ===


== Image Registration ==
* Smoothing filters
** Anisotropic diffusion
** Antialising


=== Image Segmentation ===


* Region Growing
* Level Sets
* Statistical Classification
=== Image Registration ===
* Multi-Modality
* 2D / 3D
=== IO ===
* DICOM Reading / Writing
=== Licensing ===
* Open Source


== Using ITK from IDL ==
== Using ITK from IDL ==
Line 36: Line 59:
= Time Frame =
= Time Frame =


Although there are no hard deadlines defined for this effort, we anticipate that the activity will unfold during the following six month.
Although there are no hard deadlines defined for this effort, we anticipate that the activity will unfold during the following six months.


A rough schedule will include
A rough schedule will include
Line 44: Line 67:
# Proposing a design of the interface
# Proposing a design of the interface
# Implementing the interface
# Implementing the interface
# Deploying continuous testing  
# Deploying continuous testing
 


= References =
= References =


* http://rsinc.com/idl/
* http://rsinc.com/idl/
* http://en.wikipedia.org/wiki/IDL_%28programming_language%29

Latest revision as of 05:21, 19 October 2007

Background

Creating an Interface between ITK and IDL

The purpose of this effort is to make possible to

  • Use ITK functionalities from IDL
  • Use IDL functionalities from C++ programs that use ITK


Features

Functionality Wish List

Please help us craft the interface to make sure that it will be useful for your applications. Add to the list below your ideas on things that you will like to have available.

Filtering

  • Smoothing filters
    • Anisotropic diffusion
    • Antialising

Image Segmentation

  • Region Growing
  • Level Sets
  • Statistical Classification

Image Registration

  • Multi-Modality
  • 2D / 3D

IO

  • DICOM Reading / Writing

Licensing

  • Open Source

Using ITK from IDL

The main question to address here is the level of granularity at which ITK will be available from IDL. The main two options are

  1. Wrap ITK as we have done for other languages (Tcl, Python) by exposing most of the C++ classes
  2. Wrap ITK pipelines that are customized for specific problems (e.g. MRI-CT 3D registration, CT Segmentation)

In the first case, a multitude of ITK classes will be exposed in IDL. These classes will be exposed in such a way that they can both be used from the procedural IDL interface and their more object-oriented interface.

In the second case, the users community will identify specific needs for which we will put together ITK pipelines. These pipelines will be wrapped in the form of a single procedural call. This approach requires a lot more of manual crafting and fine tunning on the pipelines, and focuses more the specific applications for which ITK will provide useful functionalities in IDL.

Using IDL from ITK

In this interface, IDL data containers will be interfaced to ITK objects so that they can be passed to a pipeline in an application based on ITK. For example, a bridge for converting IDL images to ITK image and back could be put in place.

Time Frame

Although there are no hard deadlines defined for this effort, we anticipate that the activity will unfold during the following six months.

A rough schedule will include

  1. Gathering feedback (requirements, wish list) from the IDL and ITK communities
  2. Experimenting with interface options
  3. Proposing a design of the interface
  4. Implementing the interface
  5. Deploying continuous testing

References