<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>