Proposals:IDL Interface: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 52: Line 52:


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.
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.
It might be worthwhile referring to other examples of C++ libraries exposed to IDL, and seeing how they are used by the community. An [http://barnett.id.au/idl/download/idl_cast_eg191007.zip example] of exposing boost::multi_array to IDL.


== Using IDL from ITK ==
== Using IDL from ITK ==

Revision as of 04: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.

It might be worthwhile referring to other examples of C++ libraries exposed to IDL, and seeing how they are used by the community. An example of exposing boost::multi_array to 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