Open
Description
Hello,
I'm trying to perform a 3d rigid registration.
TransformParameterFile is generated.
But the function elastix->Update() crashes while applying transform, but without explicit error.
The problem doesn't appear on linux ubuntu 20.04, only windows (10).
I've tested with several data, or changed parameters, i've tried to setnumberofthreads to 1. Results are the same.
thanks for your help
TransformParameters.0.txt
elastix.log
params.txt
Activity
zivy commentedon May 22, 2024
Hello @lilipj,
Please indicate which version of SimpleITK you are using and confirm that you built it yourself. The official binary distributions of SimpleITK do not include SimpleElastix (see FAQ). If you are working with Elastix via an ITK binary distribution, please close the issue here and open it on the ITK issue tracker.
lilipj commentedon May 22, 2024
Hello, I've built the latest version of SimpleITK 2.3.1 from sources
zivy commentedon May 22, 2024
@lilipj thanks for clarifying.
@N-Dekker, does this sound familiar to you? We'd appreciate any advice. Possibly an issue in Elastix which has already been resolved and once we upgrade to the latest Elastix superbuild version will also resolve this issue?
lilipj commentedon May 24, 2024
Hello, I have build SimpleItk in debug mode, and re-launched my test.
I can see that Elastix returns an output with a null pointer in pixelcontainer.
If it can help you...
Thanks
Print resultVolume Elastix :
Image (0000023B08D80880)
RTTI typeinfo: class itk::Image<float,3>
Reference Count: 1
Modified Time: 36506
Debug: Off
Object Name:
Observers:
none
Source: (0000023B08AE3FC0)
Source output name: Primary
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 1715
UpdateMTime: 36507
RealTimeStamp: 0.000000 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [512, 512, 19]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [0, 0, 0]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [512, 512, 19]
Spacing: [0.312500, 0.312500, 4.100000]
Origin: [51.105800, -71.576600, 81.770600]
Direction:
-0.000000 0.000000 -1.000000
1.000000 0.000000 0.000000
0.000000 -1.000000 0.000000
IndexToPointMatrix:
0.000000 0.000000 -4.100000
0.312500 0.000000 0.000000
0.000000 -0.312500 0.000000
PointToIndexMatrix:
0.000000 3.200000 0.000000
0.000000 0.000000 -3.200000
-0.243902 0.000000 0.000000
Inverse Direction:
0.000000 1.000000 0.000000
0.000000 0.000000 -1.000000
-1.000000 0.000000 0.000000
PixelContainer:
ImportImageContainer (0000023B095BE800)
RTTI typeinfo: class itk::ImportImageContainer<unsigned long,float>
Reference Count: 1
Modified Time: 1694
Debug: Off
Object Name:
Observers:
none
Pointer: 0000000000000000
Container manages memory: true
Size: 0
Capacity: 0
lilipj commentedon May 24, 2024
Is it mandatory to set SimpleITK_INT64_PIXELIDS ?
blowekamp commentedon May 24, 2024
I don't believe that any of the build have that disabled any more. So it may work with it disabled.
lilipj commentedon Jun 4, 2024
Hello,
I've made another simplified test.
I've written 2 functions, one that is performing registration using sitk::ElastixImageFilter, and one that is using elastix::ElastixFilter, both with the same images and parametersfile inputs.
SimpleITK registration is OK, instead of Elastix registration that fails.
Differences between these 2 libs are not clear to me , they come from the same build, i thought that sitk functions were a layer on top of elastix.
test_elastix.cpp.txt