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

Axel Martinez Möller axelus at gmail.com
Fri Dec 23 05:07:32 EST 2005


 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