[Insight-developers] wrapped filters types
Gaetan Lehmann
gaetan.lehmann at jouy.inra.fr
Thu Apr 7 09:58:00 EDT 2005
Hi Luis,
You're right about the number of classes a developer use. I'm using (in
c++) small pipelines, with about 5-15 filters, and I do not use
registration at all.
But for prototyping, adding filter when people need it is not a usable
option. I'm developing pipelines to analyze images in a biologist lab.
Most of the time, it's not difficult image analysis problems, but it force
me to try different pipelines. How can I use ITK with python if I must
rebuild wrappers each time I need a new filter ?
I can't (and don't want) spend time to develop an interface to tweak each
parameter for a given pipeline, and tweaking is nearly impossible to do in
c++. The result for me is that I switched (I hope for a short time) to
matlab, which is however really far from ITK quality.
If ITK can't have a good access with easy to use language like python, I
will have to use another tool kit :-(. It is not a severe problem for ITK,
but it is a severe one for me !
Perhaps my problem is that I see wrappers as an efficient way for
prototyping, and you "only" as an way to use itk in programs developed in
other languages :-/
Gaetan
On Wed, 06 Apr 2005 17:47:29 +0200, Luis Ibanez <luis.ibanez at kitware.com>
wrote:
>
> Hi Gaetan,
>
> We all agree with your request of having all the ITK filters
> available at the wrapped layer.
>
> Unfortunately this is a technical challenge where we face
> the trade-off of:
>
>
> 1) Time required for building wrapping
> 2) Size of the libraries
> 3) Convenience of having all filters available
>
>
> The option that you mention for wrapping all filters for the same
> InputImage and OutputImage type is interesting, however it doesn't
> go too far once you start considering details, for example, what
> would you do with filters that produce vector images, what would
> you do with the watershed filter that produces unsigned long labels,
> What would you do with filters that require float/double images, or
> those that produce signed images like the signed distance danielsson
> filter.
>
>
> The interesting question with wrapping is :
>
>
> At any given time,
> how many classes is a developer actually using ?
>
>
> 1) 10% of the toolkit ?
> 2) 1% of the toolkit ?
>
>
>
> There are about 700 classes in ITK. Few pipelines use more than
> 20 different types of filters. This situation is what lead us to
> a "user-driven" selection of the classes to wrap. In other words
> we only wrap the classes (and instantiations) that are of interest
> for the users.
>
> You simply need to post to the users list the names and types
> of the filters that you consider should be wrapped. You could also
> enter this as a request on the phpBugtracker.
>
> Asking for wrapping 'everything' is a well intentioned proposition
> but unfortunately is not a realistic one.
>
> Much more useful is your final statement when you specifically
> mention the filters that you are really missing right now. In
> particular some types for the Rescale (I assume you meant the
> RescaleIntensityImageFilter) and the labels filter.
>
> Could you please be more specific regarding the particular pixel
> types that you are needing to be wrapped ?
>
> With that list we will be able to add the corresponding wrapping
> files to the system.
>
>
> Please let us know,
>
>
> Thanks
>
>
> Luis
>
>
> ------------------------
> Gaetan Lehmann wrote:
>
>> Hi,
>> One of the biggest problem when I try to use itk wrappers, is that not
>> all filters are wrapped.
>> Itk wrapper user can rebuild the wrapper to add the filter he need,
>> but clearly, if someone use the wrapper, he don't want to have to
>> rebuild the wrappers.
>> ITK should have a script to be sure that all filters are wrapped.
>> The other big problem is that it's sometime impossible to build a
>> pipeline with the same type, because all the types are not wrapped. I
>> know that wrapped all types for all filters would produce a too big
>> library. A possible solution would be to make all filters (except cast
>> filter) avaible only with the same input and output type. If user
>> wants to change type in is pipeline, he must use a cast filter. This
>> would make possible to wrap all filters with all types.
>> Some filters (like rescale or label filters) should also be avaible
>> with more types.
>> Comments ?
>> Gaetan.
>>
>
>
>
>
--
Gaetan Lehmann <gaetan.lehmann at jouy.inra.fr>
Tel: +33 1 34 65 29 66
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
More information about the Insight-developers
mailing list