<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Hi Roman,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">can you turn</div><div class="gmail_default"><font face="verdana, sans-serif">smoother->SetInput(savedPointers[i]->GetOutput());</font><br></div><div class="gmail_default"><font face="verdana, sans-serif">into</font></div><div class="gmail_default"><font face="monospace, monospace">if (i==0)</font></div><div class="gmail_default"><font face="monospace, monospace">  smoother->SetInput(static_cast<CastFilterType::Pointer>(savedPointers[i])->GetOutput());<br></font></div><div class="gmail_default"><font face="monospace, monospace">else</font></div><div class="gmail_default"><font face="monospace, monospace">  smoother->SetInput(static_cast<GaussianFilterType::Pointer>(savedPointers[i])->GetOutput());</font></div><div class="gmail_default"><font face="verdana, sans-serif">or something similar and see whether that works?</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">Regards,</font></div><div class="gmail_default"><font face="verdana, sans-serif">Dženan</font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 12, 2016 at 5:41 AM, Grothausmann, Roman Dr. <span dir="ltr"><<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-hannover.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 09/09/16 16:21, Dženan Zukić wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Roman,<br>
<br>
you should not save the pointer the SmartPointer encapsulates, but rather the<br>
SmartPointer itself. The saving line of code should not be<br>
savedPointers.push_back(caster<wbr>.GetPointer());<br>
but rather<br>
savedPointers.push_back(caster<wbr>);<br>
and later usage should not be<br>
smoother->SetInput(dynamic_cas<wbr>t<ISType*>(savedPointers[i].<wbr>GetPointer())->GetOutput());<br>
but rather<br>
smoother->SetInput(savedPointe<wbr>rs[i]->GetOutput());<br>
</blockquote>
<br></span>
Many thanks Dženan for Your reply. I tried as You suggested:<br>
<br>
<a href="https://github.com/romangrothausmann/ITK-CLIs/commit/b00551faf951192f50e4090d683300524b4c95ba" rel="noreferrer" target="_blank">https://github.com/romangrotha<wbr>usmann/ITK-CLIs/commit/b00551f<wbr>af951192f50e4090d683300524b4c9<wbr>5ba</a><br>
<br>
but am getting:<br>
<br>
resample.cxx:79:49: error: no matching function for call to ?itk::ProcessObject::GetOutput<wbr>()?<span class=""><br>
  smoother->SetInput(savedPointe<wbr>rs[i]->GetOutput());<br></span>
                                                 ^<br>
resample.cxx:79:49: note: candidates are:<br>
In file included from resample.cxx:5:<br>
/opt/itk-4.9.1/include/ITK-4.9<wbr>/itkProcessObject.h:612:16: note: itk::DataObject* itk::ProcessObject::GetOutput(<wbr>const DataObjectIdentifierType&)<br>
   DataObject * GetOutput(const DataObjectIdentifierType & key);<br>
                ^<br>
<br>
I also tried:<br>
std::vector<itk::ProcessObject<wbr>> savedPointers;<br>
std::vector<itk::ISType> savedPointers;<br>
std::vector< itk::SmartPointer<itk::Process<wbr>Object> > savedPointers;<br>
but always got compile errors.<br>
I am confused when to use the smart-pointer as is and when with .GetPointer().<br>
<br>
According to<br>
<br>
<a href="https://cmake.org/pipermail/insight-users/2007-May/022374.html" rel="noreferrer" target="_blank">https://cmake.org/pipermail/in<wbr>sight-users/2007-May/022374.ht<wbr>ml</a><br>
<br>
I also tried storing the output-pointers (without pipe-line disconnection) in a separate list<br>
<br>
<a href="https://github.com/romangrothausmann/ITK-CLIs/commit/d9b5c3f1a786b595255a9153da9ceafd88d2a189" rel="noreferrer" target="_blank">https://github.com/romangrotha<wbr>usmann/ITK-CLIs/commit/d9b5c3f<wbr>1a786b595255a9153da9ceafd88d2a<wbr>189</a><br>
<br>
which does not compile either:<br>
<br>
resample.cxx:77:5: error: request for member ?GetPointer? in ?caster.itk::SmartPointer<TObj<wbr>ectType>::operator-><itk::Cast<wbr>ImageFilter<itk::Image<float, 1u>, itk::Image<float, 1u> > >()->itk::CastImageFilter<itk:<wbr>:Image<float, 1u>, itk::Image<float, 1u> >::<anonymous>.itk::UnaryFunct<wbr>orImageFilter<itk::Image<<wbr>float, 1u>, itk::Image<float, 1u>, itk::Functor::Cast<float, float> >::<anonymous>.itk::InPlaceIma<wbr>geFilter<itk::Image<float, 1u>, itk::Image<float, 1u> >::<anonymous>.itk::ImageToIma<wbr>geFilter<itk::Image<float, 1u>, itk::Image<float, 1u> >::<anonymous>.itk::ImageSourc<wbr>e<TOutputImage>::GetOutput<<wbr>itk::Image<float, 1u> >()?, which is of pointer type ?itk::ImageSource<itk::Image<f<wbr>loat, 1u> >::OutputImageType* {aka itk::Image<float, 1u>*}? (maybe you meant to use ?->? ?)<br>
     savedOutPointers.push_back(ca<wbr>ster->GetOutput().GetPointer()<wbr>);<br>
     ^<br>
<br>
I'm wondering if construct as needed is not possible at all because I can't find anything like that in the ITK-sources or examples. For the code snippets I can find in the MLs it is not clear whether they got tested and were accepted by a compiler.<br>
<br>
Any further ideas?<br>
<br>
Best<br>
Roman<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
On Fri, Sep 9, 2016 at 8:29 AM, Grothausmann, Roman Dr.<br></span>
<<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-hannove<wbr>r.de</a> <mailto:<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-<wbr>hannover.de</a>>><span class=""><br>
wrote:<br>
<br>
    On 22/07/16 14:49, Lowekamp, Bradley (NIH/NLM/LHC) [C] wrote:<br>
<br>
        Hi,<br>
<br>
        Who is holding the pointer to the newly created ImageFileReader outside of<br>
        the loop? For that type of operation I’ll frequently just stash smart<br>
        pointers into a std::vector or list.<br>
<br>
<br>
    I tried to change the resample example<br>
    (<a href="https://itk.org/Doxygen/html/Examples_2Filtering_2ResampleVolumesToBeIsotropic_8cxx-example.html" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>Examples_2Filtering_2ResampleV<wbr>olumesToBeIsotropic_8cxx-<wbr>example.html</a><br>
    <<a href="https://itk.org/Doxygen/html/Examples_2Filtering_2ResampleVolumesToBeIsotropic_8cxx-example.html" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>Examples_2Filtering_2ResampleV<wbr>olumesToBeIsotropic_8cxx-<wbr>example.html</a>><br>
    that uses itkRecursiveGaussianImageFilte<wbr>r for each dimension) such that it works<br>
    for any dimensional image.<br>
    Doing as Brad suggested and storing each smart-pointer of<br>
    itkRecursiveGaussianImageFilte<wbr>r in a std::vector I get a program<br>
    (<a href="https://github.com/romangrothausmann/ITK-CLIs/blob/0968dd25af2abc37ffb0c0503cc4c2972b3b2098/resample.cxx" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/blob/0968dd25<wbr>af2abc37ffb0c0503cc4c2972b3b20<wbr>98/resample.cxx</a><br></span>
    <<a href="https://github.com/romangrothausmann/ITK-CLIs/blob/0968dd25af2abc37ffb0c0503cc4c2972b3b2098/resample.cxx" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/blob/0968dd25<wbr>af2abc37ffb0c0503cc4c2972b3b20<wbr>98/resample.cxx</a>>)<span class=""><br>
    that compiles but segfaults when used. I guess the way I'm trying to<br>
    dereference a pointer from the list is not correct<br>
    (<a href="https://github.com/romangrothausmann/ITK-CLIs/commit/0968dd25af2abc37ffb0c0503cc4c2972b3b2098#diff-cb1b1c6837c6074372c220250cfdbb36R80" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/commit/0968dd<wbr>25af2abc37ffb0c0503cc4c2972b3b<wbr>2098#diff-cb1b1c6837c6074372c2<wbr>20250cfdbb36R80</a><br></span>
    <<a href="https://github.com/romangrothausmann/ITK-CLIs/commit/0968dd25af2abc37ffb0c0503cc4c2972b3b2098#diff-cb1b1c6837c6074372c220250cfdbb36R80" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/commit/0968dd<wbr>25af2abc37ffb0c0503cc4c2972b3b<wbr>2098#diff-cb1b1c6837c6074372c2<wbr>20250cfdbb36R80</a>>)<span class=""><br>
    but I could not find an example except the one referenced in the code line.<br>
    So how to correctly dereference a pointer from the list of smart-pointers to<br>
    get its output?<br>
<br>
    Thank for any help or hints<br>
    Roman<br>
<br>
            On Jul 22, 2016, at 6:00 AM, Grothausmann, Roman Dr.<br>
            <<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-hannove<wbr>r.de</a><br></span><div><div class="h5">
            <mailto:<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-<wbr>hannover.de</a>>> wrote:<br>
<br>
            Many thanks Brad for Your detailed reply. I understand now the problems<br>
            concerning streaming TileImageFilter. However I still wonder why my<br>
            non-streaming version also does not work any more after moving the<br>
            creation<br>
            of reader instances into the for-loop:<br>
            <a href="https://github.com/romangrothausmann/ITK-CLIs/blob/ebfc0aea37d28cbbf2bb22c3f56be52453cebde9/tile.cxx#L46-L50" rel="noreferrer" target="_blank">https://github.com/romangrotha<wbr>usmann/ITK-CLIs/blob/ebfc0aea3<wbr>7d28cbbf2bb22c3f56be52453cebde<wbr>9/tile.cxx#L46-L50</a><br>
            <<a href="https://github.com/romangrothausmann/ITK-CLIs/blob/ebfc0aea37d28cbbf2bb22c3f56be52453cebde9/tile.cxx#L46-L50" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/blob/ebfc0aea<wbr>37d28cbbf2bb22c3f56be52453cebd<wbr>e9/tile.cxx#L46-L50</a>><br>
<br>
<br>
<br>
    Is this construct inappropriate for the TileImageFilter?<br>
<br>
            Why does it work for:<br>
            <a href="https://itk.org/Doxygen/html/SphinxExamples_2src_2Filtering_2ImageGrid_2AppendTwo3DVolumes_2Code_8cxx-example.html#_a2" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/S<wbr>phinxExamples_2src_2Filtering_<wbr>2ImageGrid_2AppendTwo3DVolumes<wbr>_2Code_8cxx-example.html#_a2</a><br>
            <<a href="https://itk.org/Doxygen/html/SphinxExamples_2src_2Filtering_2ImageGrid_2AppendTwo3DVolumes_2Code_8cxx-example.html#_a2" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>SphinxExamples_2src_2Filtering<wbr>_2ImageGrid_2AppendTwo3DVolume<wbr>s_2Code_8cxx-example.html#_a2</a>><br>
<br>
<br>
<br>
    On 21/07/16 15:41, Lowekamp, Bradley (NIH/NLM/LHC) [C] wrote:<br>
<br>
                Hello,<br>
<br>
                The TileImageFilter does not fully stream [1]. The filter also<br>
                has some<br>
                odd behavior, and other older implementation details. If you are<br>
                going to<br>
                work on a streaming pipelines it is best practice to examine the<br>
                filters<br>
                to determine how the Requested regions behave.<br>
<br>
                However, there is no reason that the TileImageFilter algorithm<br>
                couldn’t<br>
                support streaming. It is just a matter of code and a bunch of<br>
                testing. A<br>
                contribution for this issue would be welcomed! Also this filter<br>
                is in<br>
                need a refactoring and bring it up to several other best<br>
                practices. There<br>
                are several issue with the current implementation that would<br>
                cause it not<br>
                to work correctly with a streaming pipeline, and cause excessive<br>
                execution.<br>
<br>
                You can also use the PipelieMoniotorImageFilter to record and<br>
                print the<br>
                pipeline interaction during Update [2]. This information helps with<br>
                debugging and diagnosing problems, but if the pipeline is<br>
                mis-behaving (<br>
                as the TileImageFilter may ), the information may not be correct.<br>
<br>
                I have tried similar streaming with the JoinSeriesImageFilter.<br>
                However I<br>
                ran into many problems with having hundreds of ImageIO being<br>
                utilized at<br>
                the same time. There were problems with having too many files<br>
                open at the<br>
                same time along with ImageIO libraries that couldn’t handle single<br>
                threaded access to multiple files.<br>
<br>
                [1]<br>
                <a href="https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Filtering/ImageGrid/include/itkTileImageFilter.hxx#L125-L136" rel="noreferrer" target="_blank">https://github.com/InsightSoft<wbr>wareConsortium/ITK/blob/<wbr>master/Modules/Filtering/Image<wbr>Grid/include/itkTileImageFilte<wbr>r.hxx#L125-L136</a><br>
                <<a href="https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Filtering/ImageGrid/include/itkTileImageFilter.hxx#L125-L136" rel="noreferrer" target="_blank">https://github.com/InsightSof<wbr>twareConsortium/ITK/blob/<wbr>master/Modules/Filtering/Image<wbr>Grid/include/itkTileImageFilte<wbr>r.hxx#L125-L136</a>><br>
<br>
<br>
<br>
<br>
    [2] <a href="https://itk.org/Doxygen/html/classitk_1_1PipelineMonitorImageFilter.html" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/c<wbr>lassitk_1_1PipelineMonitorImag<wbr>eFilter.html</a><br>
    <<a href="https://itk.org/Doxygen/html/classitk_1_1PipelineMonitorImageFilter.html" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>classitk_1_1PipelineMonitorIma<wbr>geFilter.html</a>><br>
<br>
<br>
                    On Jul 21, 2016, at 6:41 AM, Grothausmann, Roman Dr.<br>
                    <<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-hannove<wbr>r.de</a><br></div></div><span class="">
                    <mailto:<a href="mailto:grothausmann.roman@mh-hannover.de" target="_blank">grothausmann.roman@mh-<wbr>hannover.de</a>>> wrote:<br>
<br>
                    Dear mailing list members,<br>
<br>
<br>
                    Based on the examples for TileImageFilter I've created a<br>
                    working CLI<br>
                    to append an arbitrary number of inputs<br>
                    (<a href="https://github.com/romangrothausmann/ITK-CLIs/blob/4fdf5778022598dcf83fb38e6002df72bd67bef3/tile.cxx" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/blob/4fdf5778<wbr>022598dcf83fb38e6002df72bd67be<wbr>f3/tile.cxx</a><br></span>
                    <<a href="https://github.com/romangrothausmann/ITK-CLIs/blob/4fdf5778022598dcf83fb38e6002df72bd67bef3/tile.cxx" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/blob/4fdf5778<wbr>022598dcf83fb38e6002df72bd67be<wbr>f3/tile.cxx</a>>).<span class=""><br>
<br>
<br>
<br>
<br>
    As there is an example that does not apply Update and DisconnectPipeline on<br>
    the readers<br>
    (<a href="https://itk.org/Doxygen/html/SphinxExamples_2src_2Filtering_2ImageGrid_2AppendTwo3DVolumes_2Code_8cxx-example.html#_a2" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>SphinxExamples_2src_2Filtering<wbr>_2ImageGrid_2AppendTwo3DVolume<wbr>s_2Code_8cxx-example.html#_a2</a><br></span>
    <<a href="https://itk.org/Doxygen/html/SphinxExamples_2src_2Filtering_2ImageGrid_2AppendTwo3DVolumes_2Code_8cxx-example.html#_a2" rel="noreferrer" target="_blank">https://itk.org/Doxygen/html/<wbr>SphinxExamples_2src_2Filtering<wbr>_2ImageGrid_2AppendTwo3DVolume<wbr>s_2Code_8cxx-example.html#_a2</a>><wbr>)<div><div class="h5"><br>
<br>
<br>
                    I changed my code such that a reader instance is created for<br>
                    each input<br>
                    in a for-loop:<br>
                    <a href="https://github.com/romangrothausmann/ITK-CLIs/commit/ebfc0aea37d28cbbf2bb22c3f56be52453cebde9" rel="noreferrer" target="_blank">https://github.com/romangrotha<wbr>usmann/ITK-CLIs/commit/ebfc0ae<wbr>a37d28cbbf2bb22c3f56be52453ceb<wbr>de9</a><br>
                    <<a href="https://github.com/romangrothausmann/ITK-CLIs/commit/ebfc0aea37d28cbbf2bb22c3f56be52453cebde9" rel="noreferrer" target="_blank">https://github.com/romangroth<wbr>ausmann/ITK-CLIs/commit/ebfc0a<wbr>ea37d28cbbf2bb22c3f56be52453ce<wbr>bde9</a>><br>
<br>
<br>
<br>
<br>
<br>
    However, the update from the writer seems not to propagate to the readers<br>
    whether streaming or not. Can the TileImageFilter not stream in such a case<br>
    or are further modifications necessary?<br>
<br>
<br>
                    Thanks for any help or hints Roman<br>
<br>
<br>
                    On 18/08/14 17:01, Michka Popoff wrote:<br>
<br>
                        Hi<br>
<br>
                        Going the way described in the CreateVolume example is<br>
                        the way to<br>
                        go.<br>
<br>
                        Why did you uncomment the DisconnectPipeline() call and<br>
                        Update() call<br>
                        in the for loop ? They need to stay there, else you will<br>
                        always use<br>
                        the last image. That’s why you see the same image, the<br>
                        single update<br>
                        call will be triggered at the end of the script and read<br>
                        only one<br>
                        image.<br>
<br>
                        You don’t need to call tileFilter->Update(), you can<br>
                        remove this<br>
                        line. The writer->Update() will take care of the<br>
                        pipeline update. As<br>
                        a bonus, you may wrap your writer->Update() call, to<br>
                        fetch errors at<br>
                        the end of the pipeline:<br>
<br>
                        try { writer->Update(); } catch( itk::ExceptionObject &<br>
                        error ) {<br>
                        std::cerr << "Error: " << error << std::endl; return<br>
                        EXIT_FAILURE; }<br>
<br>
                        I made a little Python prototype, the syntax is a little bit<br>
                        different than in C++ but it gives you the main idea.<br>
<br>
                        Michka<br>
<br>
<br>
                    -- Dr. Roman Grothausmann<br>
<br>
                    Tomographie und Digitale Bildverarbeitung Tomography and<br>
                    Digital Image<br>
                    Analysis<br>
<br>
                    Institut für Funktionelle und Angewandte Anatomie, OE 4120<br>
                    Medizinische Hochschule Hannover Carl-Neuberg-Str. 1 D-30625<br>
                    Hannover<br>
<br></div></div>
                    Tel. <a href="tel:%2B49%20511%20532-2900" value="+495115322900" target="_blank">+49 511 532-2900</a> <tel:%2B49%20511%20532-2900><br>
                    ______________________________<wbr>_______ Powered by<br>
                    <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a> <<a href="http://www.kitware.com" rel="noreferrer" target="_blank">http://www.kitware.com</a>><span class=""><br>
<br>
                    Visit other Kitware open-source projects at<br>
                    <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
                    <<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/openso<wbr>urce/opensource.html</a>><br>
<br>
                    Kitware offers ITK Training Courses, for more information visit:<br>
                    <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/product<wbr>s/protraining.php</a><br>
                    <<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/produc<wbr>ts/protraining.php</a>><br>
<br>
                    Please keep messages on-topic and check the ITK FAQ at:<br>
                    <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FA<wbr>Q</a><br>
                    <<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_F<wbr>AQ</a>><br>
<br>
                    Follow this link to subscribe/unsubscribe:<br>
                    <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/insight-users</a><br>
                    <<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mai<wbr>lman/listinfo/insight-users</a>><br>
                    ______________________________<wbr>_________________ Community<br>
                    mailing list<br></span>
                    <a href="mailto:Community@itk.org" target="_blank">Community@itk.org</a> <mailto:<a href="mailto:Community@itk.org" target="_blank">Community@itk.org</a>><br>
                    <a href="http://public.kitware.com/mailman/listinfo/community" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/community</a><span class=""><br>
                    <<a href="http://public.kitware.com/mailman/listinfo/community" rel="noreferrer" target="_blank">http://public.kitware.com/mai<wbr>lman/listinfo/community</a>><br>
<br>
<br>
<br>
            -- Dr. Roman Grothausmann<br>
<br>
            Tomographie und Digitale Bildverarbeitung Tomography and Digital Image<br>
            Analysis<br>
<br>
            Institut für Funktionelle und Angewandte Anatomie, OE 4120 Medizinische<br>
            Hochschule Hannover Carl-Neuberg-Str. 1 D-30625 Hannover<br>
<br></span>
            Tel. <a href="tel:%2B49%20511%20532-2900" value="+495115322900" target="_blank">+49 511 532-2900</a> <tel:%2B49%20511%20532-2900><span class=""><br>
<br>
<br>
<br>
    --<br>
    Dr. Roman Grothausmann<br>
<br>
    Tomographie und Digitale Bildverarbeitung<br>
    Tomography and Digital Image Analysis<br>
<br>
    Institut für Funktionelle und Angewandte Anatomie, OE 4120<br>
    Medizinische Hochschule Hannover<br>
    Carl-Neuberg-Str. 1<br>
    D-30625 Hannover<br>
<br></span>
    Tel. <a href="tel:%2B49%20511%20532-2900" value="+495115322900" target="_blank">+49 511 532-2900</a> <tel:%2B49%20511%20532-2900><br>
    ______________________________<wbr>_______<br>
    Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a> <<a href="http://www.kitware.com" rel="noreferrer" target="_blank">http://www.kitware.com</a>><span class=""><br>
<br>
    Visit other Kitware open-source projects at<br>
    <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
    <<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/openso<wbr>urce/opensource.html</a>><br>
<br>
    Kitware offers ITK Training Courses, for more information visit:<br>
    <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/product<wbr>s/protraining.php</a><br>
    <<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/produc<wbr>ts/protraining.php</a>><br>
<br>
    Please keep messages on-topic and check the ITK FAQ at:<br></span>
    <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FA<wbr>Q</a> <<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_F<wbr>AQ</a>><span class=""><br>
<br>
    Follow this link to subscribe/unsubscribe:<br>
    <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/insight-users</a><br></span>
    <<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mai<wbr>lman/listinfo/insight-users</a>><br>
<br>
<br>
</blockquote><div class="HOEnZb"><div class="h5">
<br>
-- <br>
Dr. Roman Grothausmann<br>
<br>
Tomographie und Digitale Bildverarbeitung<br>
Tomography and Digital Image Analysis<br>
<br>
Institut für Funktionelle und Angewandte Anatomie, OE 4120<br>
Medizinische Hochschule Hannover<br>
Carl-Neuberg-Str. 1<br>
D-30625 Hannover<br>
<br>
Tel. <a href="tel:%2B49%20511%20532-2900" value="+495115322900" target="_blank">+49 511 532-2900</a><br>
</div></div></blockquote></div><br></div>