[Insight-developers] What image types to wrap?
Luis Ibanez
luis . ibanez at kitware . com
Tue, 08 Jul 2003 13:47:40 -0400
Hi Jim,
A couple of suggestions :
0) I agree with you in that only 2D and 3D should be wrapped.
1) At the meeting we mention that wrapping "signed short" could be
better than wrapping "unsigned short", since in this way we can
manage CT data.
we can still read 'unsigned short' from MRI into 'signed shorts'.
2) I would suggest also that the filter having Input/Output template
parameters
be wrapped only with the same image type. That is
InputImageType == OutputImageType
Except when the output image type is well defined (e.g. the
segmentation filters
that produce binary masks as output: Confidence connected and so on).
3) We can have Readers and Writers wrapped for a larger variety of
image types
and make the casting-like filters support these types. For example
for the types
float, double, int, unsigned int, char, unsigned char
and the casting-like filters
- RescaleIntensityFilter
- CastImageFilter
- ShiftScaleImageFilter
This will allow to read and write many image types, even if we
restrict the
internal pipelines to run only on 'float' and 'signed short'.
4) As you pointed out, label maps are quite a special case,
and maybe the only in which it is justified to wrapp for
: unsigned long.
That seems to be necessary, specially considering that this is the
output of watersheds.
We should only wrap for "unsigned long" the filters that are
expected to
manage labeled images.
(e.g. no reason for having a GaussianFilter here.. Instead we want
to make sure that the new ConnectedComponents filter is wrapped
for unsigned long.)
--------------
To summarize:
The suggestion is to wrap most filters for
- 2D/3D float
- 2D/3D signed short
and only selected filters for other pixel types.
Luis
-------------------------------------
Miller, James V (Research) wrote:
> At the last meeting we briefly discussed what image types should be
> wrapped by Swig when someone builds ITK out of the box. The user
> always has the option of adding more image types later and adding more
> filter instantiations. But we still need to pick a good set of image
> types that are immediately useful.
>
> Here is a set of suggestions:
>
> 2D/3D float images - standard datatype used to avoid precision
> problems, PET images are floating point
> 2D/3D short images - CT images (HU) are signed short
> 2D/3D unsigned short images - MR images are unsigned short (?), PNG
> images are unsigned, label maps are unsigned
> 2D/3D unsigned char images - PNG images are unsigned char
> 2D/3D unsigned long - label maps are unsigned and can easily overflow
> an unsigned short
>
> (Plus some RGB types)
>
> I think these basic image types should be wrapped. Then the question
> is how many combinations of instantiations for filters should be do?
>
>
> *Jim Miller*
> */_____________________________________/*
> /Visualization & Computer Vision//
> /GE Research/
> /Bldg. KW, Room C218B/
> /P.O. Box 8, Schenectady NY 12301/
>
> //_millerjv at research . ge . com <mailto:millerjv at research . ge . com>_/
>
> /james . miller at research . ge . com/ <mailto:james . miller at research . ge . com>
> /(518) 387-4005, Dial Comm: 8*833-4005, /
> /Cell: (518) 505-7065, Fax: (518) 387-6981/
>
>