[ITK] [ITK-users] Conversion of itk::Image to other formats

Matt McCormick matt.mccormick at kitware.com
Thu Mar 10 11:40:32 EST 2016


Hi Lambert,

A function prototype without templates would be run-time to run-time
type comparison and conversion.  The example shows how to do run-time
to compile-time comparison, and it is relevant to both in-memory and
file conversion.

HTH,
Matt

On Thu, Mar 10, 2016 at 11:28 AM, Lambert Zijp <ljzijp at gmail.com> wrote:
> Hi Sarthak,
> There is no file I/O involved. It is about conversion in memory. In my
> original post, MyFormat is a struct containing things like pixeltype and
> number of dimensions and a couple of pointers to the pixels, the sizes of
> the dimensions, and the coordinates. Conversion from MyFormat to itk, I got
> more or less working. Now I want to convert from itk to MyFormat. A function
> prototype is needed...
>
> Greetings,
> Lambert
>
> On Thu, Mar 10, 2016 at 5:02 PM, Scapegoat Sarthak
> <scapegoat.sarthak at gmail.com> wrote:
>>
>> Hi Lambert,
>>
>> What you could do is to make a function what just takes in a file name as
>> input and call the templated ITK function inside as an inline function.
>> There is no way I know to do I/O in ITK without using templates.
>>
>> Best,
>> Sarthak
>>
>>
>> On 10 March 2016 at 10:55, Lambert Zijp <ljzijp at gmail.com> wrote:
>>>
>>> Hi Scapegoat,
>>> Thank you for responding. What would the function prototype then be (of
>>> function that accepts any itk image. I mean, the syntax, preferably not
>>> templated)?
>>> Because I deal mostly with 3D or 4D signed short pixels (medical images),
>>> I keep them as they are: half the memory consumption and easier histogram
>>> computations.
>>>
>>> Greetings,
>>> Lambert
>>>
>>> On Thu, Mar 10, 2016 at 4:35 PM, Scapegoat Sarthak
>>> <scapegoat.sarthak at gmail.com> wrote:
>>>>
>>>> I would advice you to perform a check on the image dimensions (2 or 3)
>>>> and keep the pixel type as float throughout. In any case you will be doing
>>>> computation so the extra memory is going to be helpful.
>>>>
>>>>
>>>> On 10 March 2016 at 10:28, Matt McCormick <matt.mccormick at kitware.com>
>>>> wrote:
>>>>>
>>>>> Hi Lambert,
>>>>>
>>>>> This example shows how to read in an unknown image type. It
>>>>> demonstrates how to go between run-time type specification and the
>>>>> compile-image type specification of ITK.
>>>>>
>>>>>
>>>>> http://itk.org/ITKExamples/src/IO/ImageBase/ReadUnknownImageType/Documentation.html
>>>>>
>>>>> This approach could be used for your problem.
>>>>>
>>>>> HTH,
>>>>> Matt
>>>>>
>>>>> On Thu, Mar 10, 2016 at 9:56 AM, Lambert Zijp <ljzijp at gmail.com> wrote:
>>>>> > Dear itk users,
>>>>> > I'm new to itk and also not very proficient in C++...
>>>>> > I want to try some deformable registration methods implemented in
>>>>> > itk, and
>>>>> > need to convert my own format of images and volumes to itk, and back.
>>>>> > For conversion to itk, I use 'ImportImageFilter', because I do not
>>>>> > want to
>>>>> > make a copy of the pixels/voxels.
>>>>> > Converting itk images and volumes back to my own format, is giving me
>>>>> > a
>>>>> > headache; I'm confused about 'Image', SmartPointer and ConstPointer
>>>>> > and
>>>>> > template stuff.
>>>>> > Could you get me started by suggesting me a function prototype?
>>>>> >
>>>>> > Something like:
>>>>> > int ItkToMyFormat(MyFormat** ppMyFormat, itk::Image* pItkImage);
>>>>> >
>>>>> > The ItkImage can be any pixeltype, any dimension, and vector images
>>>>> > should
>>>>> > also be accepted by the conversion routine. In that conversion
>>>>> > function, and
>>>>> > need to be able to put a switch on pixeltype and number of
>>>>> > dimensions.
>>>>> >
>>>>> > Greetings,
>>>>> > Lambert
>>>>> >
>>>>> > _____________________________________
>>>>> > Powered by www.kitware.com
>>>>> >
>>>>> > Visit other Kitware open-source projects at
>>>>> > http://www.kitware.com/opensource/opensource.html
>>>>> >
>>>>> > Kitware offers ITK Training Courses, for more information visit:
>>>>> > http://www.kitware.com/products/protraining.php
>>>>> >
>>>>> > Please keep messages on-topic and check the ITK FAQ at:
>>>>> > http://www.itk.org/Wiki/ITK_FAQ
>>>>> >
>>>>> > Follow this link to subscribe/unsubscribe:
>>>>> > http://public.kitware.com/mailman/listinfo/insight-users
>>>>> >
>>>>> _____________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Kitware offers ITK Training Courses, for more information visit:
>>>>> http://www.kitware.com/products/protraining.php
>>>>>
>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/insight-users
>>>>
>>>>
>>>
>>
>
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users


More information about the Community mailing list