[Insight-users] itkSymmetricEigenAnalysisImageFilter Problem

Luis Ibanez luis.ibanez at kitware.com
Sat Sep 9 10:01:04 EDT 2006


Hi Alberto,


One symmetric tensor in ITK will have 6 components,
if you represent it as doubles, then it takes 48 bytes
per tensor.

For an image of 512x512x120 that results in 1.4 Gigabytes.

The original image was already 60 Megabytes.

Do you have also any other images / filters around ?

How much RAM memory do you have ?

It is not necessarily surprising that you are running out
of memory...


    Luis


----------------------------
Alberto Santamaría wrote:
> Dear All,
> 
> I am trying to compute the eigenvalues from a volume
> of size: 512x512x120 with data type ushort. 
> However once the Hessian has been computed, the
> program chrases giving me the following error:
> 
> *** glibc detected *** free(): invalid next size
> (fast): 0x00000000009a74c0 ***
> Aborted
> 
> The compiler that I use is:
> c++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)
> 
> and is running in a cluster with 8 CPUS of the type:
> 
> processor       : 0
> vendor_id       : AuthenticAMD
> cpu family      : 15
> model           : 5
> model name      : AMD Opteron(tm) Processor 846
> stepping        : 10
> cpu MHz         : 2004.566
> cache size      : 1024 KB
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 1
> wp              : yes
> flags           : fpu vme de pse tsc msr pae mce cx8
> apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr
> sse sse2 syscall nx mmxext lm 3dnowext 3dnow
> bogomips        : 4014.85
> TLB size        : 1088 4K pages
> clflush size    : 64
> cache_alignment : 64
> address sizes   : 40 bits physical, 48 bits virtual
> power management: ts fid vid ttp
> 
> "itkSymmetricEigenAnalysisImageFilter.h"
> 
> I tracked down the problem with valgrind and this is
> the initial part of the report. I have attached the
> complete error log.
> 
> ==22307== Warning: set address range perms: large
> range 342884360 (undefined)
> ==22307== Thread 4:
> ==22307== Invalid write of size 8
> ==22307==    at 0x4AE4B1:
> itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double,
> 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3>
> 
>>::ComputeEigenValuesUsingQL(itk::FixedArray<float,
> 
> 3>&, double*) 
> const (itkSymmetricEigenAnalysis.txx:483)
> 
> 
> Has any one faced a similar problem to this one
> before?
> 
> Thanks in advance
> 
> -Alberto
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> 
> ------------------------------------------------------------------------
> 
> ==22307== Memcheck, a memory error detector.
> ==22307== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
> ==22307== Using LibVEX rev 1606, a library for dynamic binary translation.
> ==22307== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
> ==22307== Using valgrind-3.2.0, a dynamic binary instrumentation framework.
> ==22307== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
> ==22307== For more details, rerun with: -v
> ==22307== 
> ==22307== Warning: set address range perms: large range 114294784 (undefined)
> Computing hessian set to  0.4...
> ==22307== Warning: set address range perms: large range 1371537416 (undefined)
> ==22307== Warning: set address range perms: large range 114294784 (undefined)
> 
> ==22307== Warning: set address range perms: large range 114294784 (undefined)
> ==22307== Warning: set address range perms: large range 114294784 (undefined)
> Computing hessian set to  0.4...Done
> ==22307== Warning: set address range perms: large range 342884360 (undefined)
> ==22307== Thread 4:
> ==22307== Invalid write of size 8
> ==22307==    at 0x4AE4B1: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (itkSymmetricEigenAnalysis.txx:483)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307==  Address 0xBCA6268 is 0 bytes after a block of size 24 alloc'd
> ==22307==    at 0x4905415: operator new[](unsigned long) (vg_replace_malloc.c:199)
> ==22307==    by 0x4AE73B: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:32)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4AE5FF: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (itkFixedArray.h:181)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4AE2DD: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (itkSymmetricEigenAnalysis.txx:433)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4AE375: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (vnl_math.h:158)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Invalid read of size 8
> ==22307==    at 0x4AE44D: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (itkSymmetricEigenAnalysis.txx:473)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307==  Address 0xBCA6268 is 0 bytes after a block of size 24 alloc'd
> ==22307==    at 0x4905415: operator new[](unsigned long) (vg_replace_malloc.c:199)
> ==22307==    by 0x4AE73B: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:32)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4A8E4D: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ReduceToTridiagonalMatrix(double*, itk::FixedArray<float, 3>&, 
> double*, double*) const (itkSymmetricEigenAnalysis.txx:138)
> ==22307==    by 0x4AE7AA: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:47)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4A8F16: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ReduceToTridiagonalMatrix(double*, itk::FixedArray<float, 3>&, 
> double*, double*) const (itkSymmetricEigenAnalysis.txx:158)
> ==22307==    by 0x4AE7AA: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:47)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4A8F1C: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ReduceToTridiagonalMatrix(double*, itk::FixedArray<float, 3>&, 
> double*, double*) const (itkSymmetricEigenAnalysis.txx:158)
> ==22307==    by 0x4AE7AA: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:47)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4A8E4F: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ReduceToTridiagonalMatrix(double*, itk::FixedArray<float, 3>&, 
> double*, double*) const (itkSymmetricEigenAnalysis.txx:138)
> ==22307==    by 0x4AE7AA: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:47)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== Conditional jump or move depends on uninitialised value(s)
> ==22307==    at 0x4AE2DF: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValuesUsingQL(itk::FixedArray<float, 3>&, double*) 
> const (itkSymmetricEigenAnalysis.txx:433)
> ==22307==    by 0x4AE7BB: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<flo
> at, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> co
> nst&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:49)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk
> ::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<d
> ouble, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAn
> alysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkS
> martPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307== More than 10000000 total errors detected.  I'm not reporting any more.
> ==22307== Final error counts will be inaccurate.  Go fix your program!
> ==22307== Rerun with --error-limit=no to disable this cutoff.  Note
> ==22307== that errors may occur in your program without prior warning from
> ==22307== Valgrind, because errors are no longer being displayed.
> ==22307== 
> ==22307== 
> ==22307== ERROR SUMMARY: 10000000 errors from 11 contexts (suppressed: 10 from 5)
> ==22307== malloc/free: in use at exit: 2,172,495,740 bytes in 13,998 blocks.
> ==22307== malloc/free: 4,316,909 allocs, 4,302,911 frees, 2,436,566,755 bytes allocated.
> ==22307== For counts of detected errors, rerun with: -v
> ==22307== searching for pointers to 13,998 not-freed blocks.
> ==22307== checked 1,921,180,184 bytes.
> ==22307== 
> ==22307== Thread 1:
> ==22307== 
> ==22307== 37 bytes in 1 blocks are possibly lost in loss record 38 of 206
> ==22307==    at 0x4904F57: operator new(unsigned long) (vg_replace_malloc.c:167)
> ==22307==    by 0x313E69024D: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E6902EB: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E6903D9: std::string::string(std::string const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x58A4C6: gdcm::Util::GetMACAddress() (gdcmUtil.cxx:897)
> ==22307==    by 0x58BCAB: _GLOBAL__I__ZN4gdcm4Util8GDCM_UIDE (gdcmUtil.cxx:108)
> ==22307==    by 0x689B05: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307==    by 0x483992: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307== 
> ==22307== 
> ==22307== 47 bytes in 1 blocks are possibly lost in loss record 40 of 206
> ==22307==    at 0x4904F57: operator new(unsigned long) (vg_replace_malloc.c:167)
> ==22307==    by 0x313E69024D: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E6902EB: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E6906C9: std::string::assign(std::string const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x54C8A4: gdcm::DictSet::DictSet() (basic_string.h:427)
> ==22307==    by 0x56A3B8: gdcm::Global::Global() (gdcmGlobal.cxx:70)
> ==22307==    by 0x56B48E: _GLOBAL__I__ZN4gdcm12GDCM_UNKNOWNE (gdcmGlobal.cxx:56)
> ==22307==    by 0x689B05: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307==    by 0x483992: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307== 
> ==22307== 
> ==22307== 195 bytes in 3 blocks are possibly lost in loss record 119 of 206
> ==22307==    at 0x4904F57: operator new(unsigned long) (vg_replace_malloc.c:167)
> ==22307==    by 0x313E69024D: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E6902EB: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E690792: std::string::reserve(unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E69109B: std::string::append(std::string const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x486F33: std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:2006)
> ==22307==    by 0x48553F: main (basic_string.h:2041)
> ==22307== 
> ==22307== 
> ==22307== 216 bytes in 3 blocks are definitely lost in loss record 120 of 206
> ==22307==    at 0x4905415: operator new[](unsigned long) (vg_replace_malloc.c:199)
> ==22307==    by 0x4AE74E: itk::SymmetricEigenAnalysis<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<float, 3>, itk::SymmetricSecondRankTensor<double, 3> >::ComputeEigenValues(itk::SymmetricSecondRankTensor<double, 3> const&, itk::FixedArray<float, 3>&) const (itkSymmetricEigenAnalysis.txx:35)
> ==22307==    by 0x4B3E69: itk::UnaryFunctorImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk::Image<itk::FixedArray<float, 3>, 3>, itk::Functor::SymmetricEigenAnalysisFunction<itk::SymmetricSecondRankTensor<double, 3>, itk::FixedArray<float, 3> > >::ThreadedGenerateData(itk::ImageRegion<3> const&, int) (itkSymmetricEigenAnalysisImageFilter.h:57)
> ==22307==    by 0x4A3645: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::ThreaderCallback(void*) (itkSmartPointer.h:71)
> ==22307==    by 0x4B87D6: itk::MultiThreader::SingleMethodProxy(void*) (itkMultiThreader.cxx:736)
> ==22307==    by 0x313D806109: start_thread (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x313CFC68B2: clone (in /lib64/tls/libc-2.3.4.so)
> ==22307== 
> ==22307==
> ==22307== 2,016 bytes in 7 blocks are possibly lost in loss record 154 of 206
> ==22307==    at 0x49060CD: calloc (vg_replace_malloc.c:279)
> ==22307==    by 0x313CD0D262: _dl_allocate_tls (in /lib64/ld-2.3.4.so)
> ==22307==    by 0x313D806706: pthread_create@@GLIBC_2.2.5 (in /lib64/tls/libpthread-2.3.4.so)
> ==22307==    by 0x4B92FF: itk::MultiThreader::DispatchSingleMethodThread(itk::MultiThreader::ThreadInfoStruct*) (itkMultiThreader.cxx:854)
> ==22307==    by 0x4BA281: itk::MultiThreader::SingleMethodExecute() (itkMultiThreader.cxx:278)
> ==22307==    by 0x4A3580: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::GenerateData() (itkProcessObject.h:278)
> ==22307==    by 0x4C47EC: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:991)
> ==22307==    by 0x4857B7: main (itkSmartPointer.h:71)
> ==22307== 
> ==22307== 
> ==22307== 19,468 bytes in 419 blocks are possibly lost in loss record 198 of 206
> ==22307==    at 0x4904F57: operator new(unsigned long) (vg_replace_malloc.c:167)
> ==22307==    by 0x313E69024D: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E69094A: std::string::_M_mutate(unsigned long, unsigned long, unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E690C31: std::string::assign(char const*, unsigned long) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x5913A6: gdcm::FillDefaultVRDict(std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >&) (char_traits.h:258)
> ==22307==    by 0x58EC68: gdcm::VR::VR() (gdcmVR.cxx:47)
> ==22307==    by 0x56A3D4: gdcm::Global::Global() (gdcmGlobal.cxx:71)
> ==22307==    by 0x56B48E: _GLOBAL__I__ZN4gdcm12GDCM_UNKNOWNE (gdcmGlobal.cxx:56)
> ==22307==    by 0x689B05: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307==    by 0x483992: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307== 
> ==22307== 
> ==22307== 353,305 bytes in 10,398 blocks are possibly lost in loss record 202 of 206
> ==22307==    at 0x4904F57: operator new(unsigned long) (vg_replace_malloc.c:167)
> ==22307==    by 0x313E69024D: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E69260A: (within /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x313E692722: std::string::string(char const*, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.3)
> ==22307==    by 0x58BC70: _GLOBAL__I__ZN4gdcm4Util8GDCM_UIDE (new_allocator.h:62)
> ==22307==    by 0x689B05: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307==    by 0x483992: (within /home/bwalsh/NeuRecon_source/test/ComputeSingleEigenValue)
> ==22307== 
> ==22307== 
> ==22307== 342,884,360 bytes in 1 blocks are possibly lost in loss record 205 of 206
> ==22307==    at 0x4905415: operator new[](unsigned long) (vg_replace_malloc.c:199)
> ==22307==    by 0x4A91E8: itk::ImportImageContainer<unsigned long, itk::FixedArray<float, 3> >::AllocateElements(unsigned long) const (itkImportImageContainer.txx:176)
> ==22307==    by 0x4A94B8: itk::ImportImageContainer<unsigned long, itk::FixedArray<float, 3> >::Reserve(unsigned long) (itkImportImageContainer.txx:77)
> ==22307==    by 0x4A962E: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::AllocateOutputs() (itkSmartPointer.h:71)
> ==22307==    by 0x4A96CB: itk::InPlaceImageFilter<itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3>, itk::Image<itk::FixedArray<float, 3>, 3> >::AllocateOutputs() (itkInPlaceImageFilter.txx:106)
> ==22307==    by 0x4A3520: itk::ImageSource<itk::Image<itk::FixedArray<float, 3>, 3> >::GenerateData() (itkImageSource.txx:214)
> ==22307==    by 0x4C47EC: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:991)
> ==22307==    by 0x4857B7: main (itkSmartPointer.h:71)
> ==22307== 
> ==22307== 
> ==22307== 1,371,537,416 bytes in 1 blocks are possibly lost in loss record 206 of 206
> ==22307==    at 0x4905415: operator new[](unsigned long) (vg_replace_malloc.c:199)
> ==22307==    by 0x4B1058: itk::ImportImageContainer<unsigned long, itk::SymmetricSecondRankTensor<double, 3> >::AllocateElements(unsigned long) const (itkImportImageContainer.txx:176)
> ==22307==    by 0x4B1348: itk::ImportImageContainer<unsigned long, itk::SymmetricSecondRankTensor<double, 3> >::Reserve(unsigned long) (itkImportImageContainer.txx:77)
> ==22307==    by 0x4B2D34: itk::HessianRecursiveGaussianImageFilter<itk::Image<float, 3>, itk::Image<itk::SymmetricSecondRankTensor<double, 3>, 3> >::GenerateData() (itkSmartPointer.h:71)
> ==22307==    by 0x4C47EC: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:991)
> ==22307==    by 0x485755: main (itkSmartPointer.h:71)
> ==22307== 
> ==22307== LEAK SUMMARY:
> ==22307==    definitely lost: 216 bytes in 3 blocks.
> ==22307==      possibly lost: 1,714,796,844 bytes in 10,831 blocks.
> ==22307==    still reachable: 457,698,680 bytes in 3,164 blocks.
> ==22307==         suppressed: 0 bytes in 0 blocks.
> ==22307== Reachable blocks (those to which a pointer was found) are not shown.
> ==22307== To see them, rerun with: --show-reachable=yes
> Killed
> 
> 
> ------------------------------------------------------------------------
> 
> 
> // Software Guide : BeginCodeSnippet
> #include "itkConnectedThresholdImageFilter.h"
> // Software Guide : EndCodeSnippet
> 
> 
> #include "itkImage.h"
> #include "itkCastImageFilter.h"
> #include "itkCurvatureFlowImageFilter.h"
> 
> #include "itkGradientMagnitudeRecursiveGaussianImageFilter.h"
> #include "itkHessianRecursiveGaussianImageFilter.h"
> #include "itkImageAdaptor.h"
> #include "PixelAccessors.h"
> #include "itkSymmetricEigenAnalysisImageFilter.h"
> #include "itkCastImageFilter.h"
> 
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> 
> 
> int main( int argc, char *argv[])
> {
>   if( argc <4 )
>     {
>     std::cerr << "Missing Parameters " << std::endl;
>     std::cerr << "Usage: " << argv[0];
>     std::cerr << " inputImage sigma1 sigma2 sigma3" << std::endl;
> 	std::cerr << "with no mhd extension"<<std::endl;
>     return 1;
>     }
> 
>   typedef   unsigned short  InputPixelType;
> 
>   typedef   float           InternalPixelType;
>   const     unsigned int    Dimension = 3;
> 
>   typedef itk::Image< InternalPixelType, Dimension >	InternalImageType;
> 
>   // We instantiate reader and writer types
>   typedef   itk::ImageFileReader< InternalImageType >	ReaderType;
>   typedef   itk::ImageFileWriter<  InternalImageType  > WriterType;
> 
>   
>   typedef   itk::HessianRecursiveGaussianImageFilter< 
>                             InternalImageType >           HessianFilterType;
>   typedef   HessianFilterType::OutputImageType            HessianImageType;
>   typedef   HessianImageType::PixelType                   HessianPixelType;
> 
>   typedef   itk::FixedArray< float, 3 >
>                                                           EigenValueArrayType;
>   typedef  itk::Image< EigenValueArrayType, HessianImageType::ImageDimension >
>                                                           EigenValueImageType;
>   typedef  itk::ImageAdaptor<  EigenValueImageType, 
> 								EigenValueAccessor< EigenValueArrayType > >	  ImageAdaptorType;
>   typedef   itk::SymmetricEigenAnalysisImageFilter< 
> 								HessianImageType, EigenValueImageType >     EigenAnalysisFilterType;
>   typedef itk::CastImageFilter< ImageAdaptorType, 
> 								InternalImageType >	  CastImageFilterType;
> 
>      const std::string mhd = ".mhd";
>      const std::string sigmaString = ".Sigma";
>  
> 
>      const std::string eigenValuesString1 = ".EigVal1";
>      const std::string eigenValuesString2 = ".EigVal2";
>      const std::string eigenValuesString3 = ".EigVal3";
> 
> 	 const std::string inputVolumeFilename = argv[1];
> 	  std::string outputVolumeEigenValue_1_Filename = inputVolumeFilename + eigenValuesString1 ;
> 	  std::string outputVolumeEigenValue_2_Filename = inputVolumeFilename + eigenValuesString2 ;
> 	  std::string outputVolumeEigenValue_3_Filename = inputVolumeFilename + eigenValuesString3 ;
> 
> 	 itk::FixedArray< float, 3 >  sigmasValuesArray;
> 
>  
> 	sigmasValuesArray[0] = atof( argv[2] );
> 	sigmasValuesArray[1] = atof( argv[3] );
> 	sigmasValuesArray[2] = atof( argv[4] );
> 
> 	 WriterType::Pointer m_InternalWriter = WriterType::New();
> 	  
> 
> 	ReaderType::Pointer m_Reader =  ReaderType::New();
> 	m_Reader->SetFileName( (inputVolumeFilename+mhd).c_str());
>     m_Reader->Update();
> 
> 	HessianFilterType::Pointer  m_Hessian = HessianFilterType::New();
> 	m_Hessian->SetInput( m_Reader->GetOutput() );
> 
>   // Compute eigen values.. order them in ascending order
>   EigenAnalysisFilterType::Pointer m_EigenFilter = EigenAnalysisFilterType::New();
>   m_EigenFilter->SetDimension( HessianPixelType::Dimension );
> 
>     // Create an adaptor and plug the output to the parametric space
>   ImageAdaptorType::Pointer m_EigenAdaptor1 = ImageAdaptorType::New();
>   EigenValueAccessor< EigenValueArrayType > accessor1;
>   
>   ImageAdaptorType::Pointer m_EigenAdaptor2 = ImageAdaptorType::New();
>   EigenValueAccessor< EigenValueArrayType > accessor2;
> 
>   ImageAdaptorType::Pointer m_EigenAdaptor3 = ImageAdaptorType::New();
>   EigenValueAccessor< EigenValueArrayType > accessor3;
> 
>   // m_EigenCastfilter1 will give the eigen values with the maximum eigen
>   // value. m_EigenCastfilter3 will give the eigen values with the 
>   // minimum eigen value.
>    CastImageFilterType::Pointer m_EigenCastfilter1 = CastImageFilterType::New();
> 
>   CastImageFilterType::Pointer m_EigenCastfilter2 = CastImageFilterType::New();
> 
>   CastImageFilterType::Pointer m_EigenCastfilter3 = CastImageFilterType::New();
> 
> 
> 
> 
>   for(int i=0; i< sigmasValuesArray.Size(); i++)
>   {
> 	 outputVolumeEigenValue_1_Filename = outputVolumeEigenValue_1_Filename  + sigmaString + "." +  argv[i+2] + mhd;
>      outputVolumeEigenValue_2_Filename = outputVolumeEigenValue_2_Filename  + sigmaString + "." +  argv[i+2] + mhd;
>      outputVolumeEigenValue_3_Filename = outputVolumeEigenValue_3_Filename  + sigmaString + "." +  argv[i+2] + mhd;
> 
> 	  std::cout<<"Computing hessian set to  "<<sigmasValuesArray[i]<<"..."<<std::endl;
> 		m_Hessian->SetSigma(sigmasValuesArray[i]);
> 		m_Hessian->Update();
> 	  std::cout<<"Computing hessian set to  "<<sigmasValuesArray[i]<<"...Done"<<std::endl;
> 
> 	m_EigenFilter->SetInput( m_Hessian->GetOutput() );
> 	m_EigenFilter->OrderEigenValuesBy( EigenAnalysisFilterType::FunctorType::OrderByValue );
> 	m_EigenFilter->Update();
> 
> 	accessor1.SetEigenIdx( 0 );
> 	m_EigenAdaptor1->SetImage( m_EigenFilter->GetOutput() );
> 	m_EigenAdaptor1->SetPixelAccessor( accessor1 );
> 
> 	accessor2.SetEigenIdx( 1 );
> 	m_EigenAdaptor2->SetImage( m_EigenFilter->GetOutput() );
> 	m_EigenAdaptor2->SetPixelAccessor( accessor2 );
> 
>     accessor3.SetEigenIdx( 2 );
> 	m_EigenAdaptor3->SetImage( m_EigenFilter->GetOutput() );
> 	m_EigenAdaptor3->SetPixelAccessor( accessor3 );
> 
>     m_EigenCastfilter1->SetInput( m_EigenAdaptor3 ); 
>     m_EigenCastfilter2->SetInput( m_EigenAdaptor2 ); 
>     m_EigenCastfilter3->SetInput( m_EigenAdaptor1 ); 
> 
> 	std::cout<<"Writing EigenValues for  "<<sigmasValuesArray[i]<<"..."<<std::endl;
> 	m_EigenCastfilter1->Update();
> 	m_InternalWriter->SetInput( m_EigenCastfilter1->GetOutput() );
> 	m_InternalWriter->SetFileName( outputVolumeEigenValue_1_Filename.c_str());
> 	m_InternalWriter->Update();
> 
> 	m_EigenCastfilter2->Update();
> 	m_InternalWriter->SetInput( m_EigenCastfilter2->GetOutput() );
> 	m_InternalWriter->SetFileName( outputVolumeEigenValue_2_Filename.c_str() );
> 	m_InternalWriter->Update();
> 
> 	m_EigenCastfilter3->Update();
> 	m_InternalWriter->SetInput( m_EigenCastfilter3->GetOutput() );
> 	m_InternalWriter->SetFileName( outputVolumeEigenValue_3_Filename.c_str());
> 	m_InternalWriter->Update();
> 	std::cout<<"Writing EigenValues for  "<<sigmasValuesArray[i]<<"...Done"<<std::endl;
> 
> 	 outputVolumeEigenValue_1_Filename = inputVolumeFilename + eigenValuesString1  ;
>      outputVolumeEigenValue_2_Filename = inputVolumeFilename + eigenValuesString2  ;
>      outputVolumeEigenValue_3_Filename = inputVolumeFilename + eigenValuesString3  ;
>   }
>  
>  
>   std::cout<<"Computing Eigenvalues... Done." << std::endl;
>   return 0;
> }
> 
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users




More information about the Insight-users mailing list