[Insight-users] multi resolution registration : problem in pyramid
DE CRAENE Mathieu
decraene@bwh.harvard.edu
Fri, 4 Apr 2003 12:00:13 -0500 (EST)
Hi all !
I'm encountering a problem with the MultiResolutionImageRegistrationMethod. At the last registration level, I get (on certain images) a seg fault. Trying to debug, I have displayed the fixed image region and called the PrintSelf of the fixed Image at each level. Here is what I get :
1. BEFORE REGISTRATION
Registration : Fixed Image Region : ImageRegion (0xbffff928)
Dimension: 3
Index: [50, 80, 0]
Size: [150, 96, 19]
Registration : Fixed Image : Image (0x816a9b8)
Reference Count: 3
Modified Time: 237
Debug: Off
Observers:
none
Source: (0x815a7d8)
Source output index: 0
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 234
UpdateTime: 239
LastRequestedRegionWasOutsideOfTheBufferedRegion: 1
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 19]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 19]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 19]
Origin: [-109.57, -219.141, -45]
Spacing: [0.859375, 1.71875, 5]
PixelContainer: ImportImageContainer (0x815a848)
Reference Count: 2
Modified Time: 238
Debug: Off
Observers:
none
Pointer: 0x815a874
Container manages memory: true
Size: 1245184
Capacity: 1245184
2. FIRST REGISTRATION LEVEL
FIXED IMAGE REGION : ImageRegion (0xbffff430)
Dimension: 3
Index: [25, 40, 0]
Size: [75, 48, 9]
Image (0x81497d0)
Reference Count: 3
Modified Time: 292
Debug: Off
Observers:
none
Source: (0x8148f90)
Source output index: 0
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 252
UpdateTime: 443
LastRequestedRegionWasOutsideOfTheBufferedRegion: 0
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [128, 128, 9]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [128, 128, 9]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [128, 128, 9]
Origin: [-109.57, -219.141, -45]
Spacing: [1.71875, 3.4375, 10]
PixelContainer: ImportImageContainer (0x81498b8)
Reference Count: 2
Modified Time: 293
Debug: Off
Observers:
none
Pointer: 0x81498e4
Container manages memory: true
Size: 147456
Capacity: 147456
3. SECOND (FULL RESOLUTION) REGISTRATION LEVEL
FIXED IMAGE REGION : ImageRegion (0xbffff430)
Dimension: 3
Index: [50, 80, 0]
Size: [150, 96, 19]
Image (0x8149938)
Reference Count: 3
Modified Time: 370
Debug: Off
Observers:
none
Source: (0x8148f90)
Source output index: 1
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 252
UpdateTime: 444
LastRequestedRegionWasOutsideOfTheBufferedRegion: 0
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 19]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 18] >>>>>>>>>>>>>>>> ???????????????
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [256, 256, 18] >>>>>>>>>>>>>>>> ???????????????
Origin: [-109.57, -219.141, -45]
Spacing: [0.859375, 1.71875, 5]
PixelContainer: ImportImageContainer (0x8149a20)
Reference Count: 2
Modified Time: 371
Debug: Off
Observers:
none
Pointer: 0x8149a4c
Container manages memory: true
Size: 1179648
Capacity: 1179648
It seems that at the last (full resolution) registration level, the buffered region differed from the fixed image region. I'm using the MattesMutualInformationMetric... So it seems that when the metric computes the maximum and the minimum of the region (to compute the size of bins), the metric tries to reach voxels outside the bufferd region... which could explain the segmentation fault.
I don't understand why this problem appears only at the full registration level and why the full resolution image in the pyramid is not identical to the (fixed) image I passed to the MultiResolutionImageMethod.
Any suggestion or comments are welcome !!
Thanks for your help,
Math.
----------------------------
Mathieu De Craene
Brigham and Womens Hospital
Surgical Planning Laboratory
L1 - room 050
75 Francis Street
Boston MA 02115
decraene@bwh.harvard.edu