[Insight-users] Multiresolution ITK Guide example fails on VS2005 - fixed but results are not the expected ones

Luis Ibanez luis.ibanez at kitware.com
Fri Dec 23 07:24:54 EST 2005


Hi Axel,

Are you running the test in Debug mode or in Release mode ?

The result of numerical computations may differ due to the
way in which the compiler will decide how to manipulate
float numbers.



Please let us know.


    Luis



----------------------------
Axel Martinez Möller wrote:
>  Hello,
> 
>  The code is not crashing anymore.
> 
>  Karthik: thanks a lot for the correction.
>  Luis: thanks a lot for your help and for directing the problem to the right
> person.
> 
>  Only one additional comment. The result I get is not the result shown in
> the manual. I get:
> 
>  Translation X = 13.9811
>  Translation Y = 15.9065
>  Iterations    = 9
>  Metric value  = -0.666861
> 
>  In the manual it is said that I should get:
> 
> Translation X = 13.1035
> Translation Y = 17.19
> 
>  Which is much closer to the real displacement (13,17). The number of
> iterations performed is also different than the one indicated in the manual:
> 
> 0   -0.428819   [12.2116, 10.3381]
> 1   -0.711042   [13.3697, 26.2961]
> 2   -0.649285   [6.58014, 22.0651]
> 3   -0.625776   [10.5504, 21.5783]
> 4   -0.730836   [12.8036, 18.2733]
> 5   -0.840357   [11.0623, 14.6722]
> 0   -0.742633   [13.0232, 15.0656]
> 1   -0.756987   [14.3962, 16.5198]
> 2   -0.734524   [13.6065, 15.9065]
> 3   -0.743746   [13.6888, 16.3996]
> 4   -0.740966   [13.5939, 16.1683]
> 5   -0.743034   [13.5182, 15.9301]
> 0   -0.673919   [13.6369, 15.9691]
> 1   -0.672428   [13.7589, 15.9963]
> 2   -0.670211   [13.8822, 16.0172]
> 3   -0.667172   [13.9833, 15.9437]
> 4   -0.66599   [13.9184, 15.8369]
> 5   -0.669801   [13.961, 15.8826]
> 6   -0.667906   [14.0018, 15.9299]
> 7   -0.66525   [13.9811, 15.9065]
> 
>  I do not see how this might be related to the correction of the bug. I also
> thought it might be related to the random generator, but since I am using
> the same seed given in the example it should not have an influence... is it
> also something related to VS2005? Luis: do you get the same results?
> 
>  Sorry that I find so many problems, and many thanks in advance in any case,
> 
>   axel
> 
> 
> -----Original Message-----
> From: Karthik Krishnan [mailto:Karthik.Krishnan at kitware.com] 
> Sent: Thursday, December 22, 2005 19:16
> To: Axel Martinez Möller
> Cc: 'Luis Ibanez'; 'Insight Users'
> Subject: Re: [Insight-users] Multiresolution ITK Guide example fails on
> VS2005 - fixed
> 
> Thanks for the bug report. Its been fixed. Please update your repository 
> orthe file below.
> 
> http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Algorithms/itkMultiResolutionIma
> geRegistrationMethod.txx?root=Insight&r1=text&tr1=1.12&r2=text&tr2=1.11&diff
> _format=h
> 
> VS8 is stricter ( and more correct ) in catching bugs with std::vector
> 
> vector::reserve(n) does not change the size of the vector. It only a 
> request for allocation of additional memory. vector::size() is unchanged 
> by reserve(). (from http://www.sgi.com/tech/stl/Vector.html)
> 
> Earlier VS8 caught a few other bugs by checking if an iterator is 
> dereferencible prior to derefencing it.
> (http://www.itk.org/Bug/bug.php?op=show&bugid=2485)
> 
> Thanks
> -karthik
> 
> Axel Martinez Möller wrote:
> 
> 
>>Hi Luis,
>>
>>I am running the program in Debug mode (ITK is also built in Debug mode),
>>and the wrong line is the line:
>>
>>registration->StartRegistration();  (line 492)
>>
>>As I said in the first mail, while debugging I "stepped into" until I
>>localized the problem at line 208 from
>>itkMultiResolutionImageRegistrationMethod.txx:
>>
>>m_FixedImageRegionPyramid[ level ].SetSize( size );
>>
>>This causes an error in the "vector" class from C++, line 753 and
>>consecutive:
>>
>>#if _HAS_ITERATOR_DEBUGGING
>>		if (size() <= _Pos)
>>			{
>>			_DEBUG_ERROR("vector subscript out of range");
>>			_SCL_SECURE_OUT_OF_RANGE;
>>			}
>>
>>Which explains the "Expression: vector subscript out of range" error I
>>referenced in the first mail.
>>
>>That's all the information I managed to extract, I hope it helps. I do not
>>see a logical explanation if it works for you since I made no changes to
> 
> the
> 
>>code... I have ITK release 2.4.1, working under VS2005. If you have any
>>other suggestion, I will be happy to try it.
>>
>>Thanks again for the help,
>>
>> axel
>>
>>
>>-----Original Message-----
>>From: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
>>Sent: Thursday, December 22, 2005 16:04
>>To: Axel Martinez Möller
>>Cc: 'Insight Users'
>>Subject: Re: [Insight-users] Multiresolution ITK Guide example fails on
>>VS2005
>>
>>
>>Hi Axel,
>>
>>Thanks for your clarification.
>>
>>The program runs fine for me when I pass three
>>arguments.
>>
>>Something else should be going wrong then...
>>
>>
>>
>>Could you please run this program in Debug mode
>>and let us know in what line it is crashing ?
>>
>>
>>  Thanks
>>
>>
>>
>>     Luis
>>
>>
>>
>>
>>---------------------------
>>Axel Martinez Möller wrote:
>> 
>>
>>
>>>Hi Luis,
>>>
>>>I am using three arguments for the execution, this is the command line I
>>>use:
>>>
>>>register
>>>
>>>   
>>>
>>
>>F:\ITK\InsightToolkit-2.4.1\Examples\Data\BrainProtonDensitySliceBorder20.p
> 
> n
> 
>> 
>>
>>
>>>g
>>>
>>>   
>>>
>>
>>F:\ITK\InsightToolkit-2.4.1\Examples\Data\BrainProtonDensitySliceR10X13Y17.
> 
> p
> 
>> 
>>
>>
>>>ng C:\axel\registertest\removeme.mhd
>>>
>>>"register" is the name I use for the file, but it has similar contents as
>>>MultiResImageRegistration1.
>>>
>>>Do you know if anything else could explain the problem?
>>>
>>>Thanks,
>>>
>>> axel
>>>
>>>-----Original Message-----
>>>From: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
>>>Sent: Thursday, December 22, 2005 14:43
>>>To: Axel Martinez Möller
>>>Cc: 'Insight Users'
>>>Subject: Re: [Insight-users] Multiresolution ITK Guide example fails on
>>>VS2005
>>>
>>>
>>>
>>>Hi Axel,
>>>
>>>Thanks for pointing this out.
>>>
>>>The example that you are using requires three arguments
>>>in the command line.
>>>
>>>You are probably setting only two, and due to a bug in
>>>the example, the program is attempting to use the third
>>>argument, and crashes in the process.
>>>
>>>
>>>    We just committed a fix in the CVS repository.
>>>
>>>
>>>Please run the program as:
>>>
>>>
>>>MultiResImageRegistration1  fixedImage movingImage outputImage
>>>
>>>
>>>you can also add a forth and fifth arguments in order to
>>>get the checkerboard combination of the fixed and moving
>>>images before and after the registration.
>>>
>>>
>>>Thanks
>>>
>>>
>>>   Luis
>>>
>>>
>>>
>>>---------------------------
>>>Axel Martinez Möller wrote:
>>>
>>>   
>>>
>>>
>>>>Hi all,
>>>>
>>>>I was wanting to try the MultiResImageRegistration1 example. It compiled
>>>>fine with VS2005, but when I executed it using the images indicated in
> 
> the
> 
>>>>example, it crashed with the error:
>>>>
>>>>---
>>>>Debug Assertion Failed!
>>>>Program: F:\ITK\Register\Debug\Register.exe
>>>>File: C:\Program Files\Microsoft Visual Studio 8\VC\include\vector
>>>>Line: 756
>>>>
>>>>Expression: vector subscript out of range
>>>>---
>>>>
>>>>I do not attach the code as it is EXACTLY the one from the example. I am
>>>>running it in Debug mode (the same way I compiled ITK), and other
> 
> examples
> 
>>>>worked fine.
>>>>
>>>>Debugging, I localized the problem at line 208 from
>>>>itkMultiResolutionImageRegistrationMethod.txx:
>>>>  m_FixedImageRegionPyramid[ level ].SetSize( size );
>>>>
>>>>Thank you in advance for any hint,
>>>>
>>>>axel
>>>>
>>>>_______________________________________________
>>>>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
>>
>> 
>>
> 
> 
> 
> 



More information about the Insight-users mailing list