[Insight-users] Re: tkSymmetricEigenAnalysisImageFilter Problem
Luis Ibanez
luis.ibanez at kitware.com
Sat Sep 9 15:45:18 EDT 2006
Hi Alberto,
Is that a 64 bits machine ?
If not,
then you can only access 2Gb per process.
Have you tried a minimal C++ program that
attempts to allocate more than 2Gb ?
Something like:
--------------------------------------------------------
#include <iostream>
int main()
{
unsigned long N = 500000000L;
try
{
double * t = new double[N];
}
catch(...)
{
std::cout << "Allocation failure" << std::endl;
return 1;
}
std::cout << "Success" << std::endl;
return 0;
}
--------------------------------------------------------
This should allocate 3.7 Gigabites.
Please compile this in your machine and let us know
what you get as output.
Thanks
Luis
---------------------------
Alberto Santamaría wrote:
> Hi Luis,
>
> Thanks for the hint. Then it looks like the problem is
> memory allocation from the OS.
>
>
>>Do you have also any other images / filters around ?
>
>
> Actually the filter runs well in smaller images,
> 512x512x69. And so far I just tried with this filter.
>
>
>>How much RAM memory do you have ?
>
> The memory avaliable is 32Gb, so in principle it
> should be able to handle 1.6Gb
>
> Thanks,
>
> -Alberto
>
> --- insight-users-request at itk.org wrote:
>
>
>>Today's Topics:
>>
>> 1. Re: itkSymmetricEigenAnalysisImageFilter
>>Problem (Luis Ibanez)
>>
>>
>>
>
> ----------------------------------------------------------------------
>
>>Message: 1
>>Date: Sat, 09 Sep 2006 10:01:04 -0400
>>From: Luis Ibanez <luis.ibanez at kitware.com>
>>Subject: Re: [Insight-users]
>>itkSymmetricEigenAnalysisImageFilter
>> Problem
>>To: pang2 at yahoo.com
>>Cc: insight-users at itk.org
>>Message-ID: <4502C920.2080104 at kitware.com>
>>Content-Type: text/plain; charset=ISO-8859-1;
>>format=flowed
>>
>>
>>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
>>
>>
>>
>>
>>------------------------------
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>End of Insight-users Digest, Vol 29, Issue 17
>>*********************************************
>>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
>
More information about the Insight-users
mailing list