|
I just checked in a fix for the crashing issue, but I don't see that the calculations are working right. Jim and Andriy use this module through the command line, so it should be working but in slicer I only get a volume of all zeros.
I've asked Jim to try it. |
|
|
The vector field has been marked as "hidden" in the parameter list. This prevents Slicer from providing access to the vector field via the GUI. The vector field is accessible when the module is used from the command line.
We need to extend Slicer to properly handle vector images and glyph them appropriately. We could also extend Slicer to receive a vector field as a displacement transform. Bess had part of that implemented.
For now everything runs without crashing. |
|
|
I just tried to register fixed.nrrd to moving.nrrd. The result is a volume of all zeros.
I'm not concerned about getting back the deformation field, I just want the registered image :) |
|
|
I ran again with Verbose flag checked and got this output:
Diffeomorphic Demons Algorithm standard output:
Arguments structure:
Fixed image file: slicer:0x10a66d20#vtkMRMLScalarVolumeNode1
Moving image file: slicer:0x10a66d20#vtkMRMLScalarVolumeNode2
Output image file: slicer:0x10a66d20#vtkMRMLScalarVolumeNode3
Output field file:
True field file:
Number of multiresolution levels: 3
Number of demons iterations: [ 20 20 20 ]
Deformation field sigma: 3
Update field sigma: 0
Maximum update step length: 2
Use vanilla demons: 0
Type of gradient: symmetrized
Use histogram matching: 0
Verbosity: 1
0: MSE 0.0996743 - harmo. 0.000238748 - max|Jac| 1.07685 - min|Jac| 0.999421 - ratio(|Jac|<=0) 0
1: MSE 0.105667 - harmo. 0.000134692 - max|Jac| 1.04648 - min|Jac| 1 - ratio(|Jac|<=0) 0
2: MSE 0.106155 - harmo. 0.000121535 - max|Jac| 1.04054 - min|Jac| 1 - ratio(|Jac|<=0) 0
3: MSE 0.108351 - harmo. 0.000127316 - max|Jac| 1.04173 - min|Jac| 1 - ratio(|Jac|<=0) 0
4: MSE 0.105793 - harmo. 0.000144338 - max|Jac| 1.04876 - min|Jac| 0.989634 - ratio(|Jac|<=0) 0
5: MSE 0.107877 - harmo. 0.000158136 - max|Jac| 1.04979 - min|Jac| 0.98843 - ratio(|Jac|<=0) 0
6: MSE 0.112291 - harmo. 0.000162215 - max|Jac| 1.04084 - min|Jac| 0.996028 - ratio(|Jac|<=0) 0
7: MSE 0.11424 - harmo. 0.000176149 - max|Jac| 1.03783 - min|Jac| 0.998509 - ratio(|Jac|<=0) 0
8: MSE 0.117972 - harmo. 0.000192109 - max|Jac| 1.03871 - min|Jac| 1.00009 - ratio(|Jac|<=0) 0
9: MSE 0.113339 - harmo. 0.000207803 - max|Jac| 1.04799 - min|Jac| 0.989931 - ratio(|Jac|<=0) 0
10: MSE 0.116551 - harmo. 0.000222514 - max|Jac| 1.05004 - min|Jac| 0.988836 - ratio(|Jac|<=0) 0
11: MSE 0.121931 - harmo. 0.000231413 - max|Jac| 1.04062 - min|Jac| 0.997248 - ratio(|Jac|<=0) 0
12: MSE 0.123809 - harmo. 0.00024708 - max|Jac| 1.03775 - min|Jac| 0.998548 - ratio(|Jac|<=0) 0
13: MSE 0.125652 - harmo. 0.000262988 - max|Jac| 1.03648 - min|Jac| 0.99735 - ratio(|Jac|<=0) 0
14: MSE 0.127533 - harmo. 0.000278033 - max|Jac| 1.03576 - min|Jac| 0.996373 - ratio(|Jac|<=0) 0
15: MSE 0.129405 - harmo. 0.000291406 - max|Jac| 1.03528 - min|Jac| 0.995531 - ratio(|Jac|<=0) 0
16: MSE 0.131136 - harmo. 0.000303402 - max|Jac| 1.03489 - min|Jac| 0.994863 - ratio(|Jac|<=0) 0
17: MSE 0.132789 - harmo. 0.000314343 - max|Jac| 1.03486 - min|Jac| 0.994333 - ratio(|Jac|<=0) 0
18: MSE 0.134393 - harmo. 0.000324473 - max|Jac| 1.03484 - min|Jac| 0.993906 - ratio(|Jac|<=0) 0
19: MSE 0.13597 - harmo. 0.000333964 - max|Jac| 1.03482 - min|Jac| 0.993557 - ratio(|Jac|<=0) 0
Finished Multi-resolution iteration :0
0: MSE 0.0852025 - harmo. 0.000271019 - max|Jac| 1.09325 - min|Jac| 0.98452 - ratio(|Jac|<=0) 0
1: MSE 0.0946497 - harmo. 0.000254681 - max|Jac| 1.13152 - min|Jac| 0.952542 - ratio(|Jac|<=0) 0
2: MSE 0.0656432 - harmo. 0.000253204 - max|Jac| 1.13907 - min|Jac| 0.955328 - ratio(|Jac|<=0) 0
3: MSE 0.0559085 - harmo. 0.000243065 - max|Jac| 1.14968 - min|Jac| 0.939368 - ratio(|Jac|<=0) 0
4: MSE 0.0509882 - harmo. 0.000241262 - max|Jac| 1.15289 - min|Jac| 0.934974 - ratio(|Jac|<=0) 0
5: MSE 0.0524651 - harmo. 0.00023601 - max|Jac| 1.15626 - min|Jac| 0.92743 - ratio(|Jac|<=0) 0
6: MSE 0.0467432 - harmo. 0.000239189 - max|Jac| 1.15897 - min|Jac| 0.928586 - ratio(|Jac|<=0) 0
7: MSE 0.0501123 - harmo. 0.000233343 - max|Jac| 1.16105 - min|Jac| 0.922727 - ratio(|Jac|<=0) 0
8: MSE 0.0450565 - harmo. 0.00023665 - max|Jac| 1.16269 - min|Jac| 0.924929 - ratio(|Jac|<=0) 0
9: MSE 0.0470968 - harmo. 0.000234522 - max|Jac| 1.16387 - min|Jac| 0.920535 - ratio(|Jac|<=0) 0
10: MSE 0.0438559 - harmo. 0.000236039 - max|Jac| 1.16488 - min|Jac| 0.921878 - ratio(|Jac|<=0) 0
11: MSE 0.0459872 - harmo. 0.000232363 - max|Jac| 1.16556 - min|Jac| 0.918804 - ratio(|Jac|<=0) 0
12: MSE 0.0429555 - harmo. 0.000233334 - max|Jac| 1.16614 - min|Jac| 0.920476 - ratio(|Jac|<=0) 0
13: MSE 0.0451337 - harmo. 0.000228989 - max|Jac| 1.16648 - min|Jac| 0.918117 - ratio(|Jac|<=0) 0
14: MSE 0.0422484 - harmo. 0.000229955 - max|Jac| 1.16681 - min|Jac| 0.919484 - ratio(|Jac|<=0) 0
15: MSE 0.0444477 - harmo. 0.000225301 - max|Jac| 1.16695 - min|Jac| 0.917923 - ratio(|Jac|<=0) 0
16: MSE 0.041679 - harmo. 0.000226466 - max|Jac| 1.16712 - min|Jac| 0.918898 - ratio(|Jac|<=0) 0
17: MSE 0.0428049 - harmo. 0.000221129 - max|Jac| 1.16713 - min|Jac| 0.919348 - ratio(|Jac|<=0) 0
18: MSE 0.0421192 - harmo. 0.000223993 - max|Jac| 1.16723 - min|Jac| 0.917988 - ratio(|Jac|<=0) 0
19: MSE 0.0423954 - harmo. 0.000218112 - max|Jac| 1.16724 - min|Jac| 0.918575 - ratio(|Jac|<=0) 0
Finished Multi-resolution iteration :1
0: MSE 0.00759909 - harmo. 0.00016652 - max|Jac| 1.18232 - min|Jac| 0.892977 - ratio(|Jac|<=0) 0
1: MSE 0.00612989 - harmo. 0.000151039 - max|Jac| 1.17502 - min|Jac| 0.886697 - ratio(|Jac|<=0) 0
2: MSE 0.00543989 - harmo. 0.000138267 - max|Jac| 1.16645 - min|Jac| 0.885705 - ratio(|Jac|<=0) 0
3: MSE 0.00496078 - harmo. 0.000128061 - max|Jac| 1.15947 - min|Jac| 0.882928 - ratio(|Jac|<=0) 0
4: MSE 0.00460227 - harmo. 0.000119336 - max|Jac| 1.15229 - min|Jac| 0.880425 - ratio(|Jac|<=0) 0
5: MSE 0.00432484 - harmo. 0.000112371 - max|Jac| 1.14748 - min|Jac| 0.87946 - ratio(|Jac|<=0) 0
6: MSE 0.0040987 - harmo. 0.000105822 - max|Jac| 1.14207 - min|Jac| 0.879965 - ratio(|Jac|<=0) 0
7: MSE 0.00391494 - harmo. 0.000100859 - max|Jac| 1.13936 - min|Jac| 0.881538 - ratio(|Jac|<=0) 0
8: MSE 0.00375582 - harmo. 9.54632e-05 - max|Jac| 1.13447 - min|Jac| 0.883835 - ratio(|Jac|<=0) 0
9: MSE 0.00362266 - harmo. 9.18691e-05 - max|Jac| 1.13347 - min|Jac| 0.886612 - ratio(|Jac|<=0) 0
10: MSE 0.00350127 - harmo. 8.72341e-05 - max|Jac| 1.12883 - min|Jac| 0.889703 - ratio(|Jac|<=0) 0
11: MSE 0.00340128 - harmo. 8.45507e-05 - max|Jac| 1.12888 - min|Jac| 0.893001 - ratio(|Jac|<=0) 0
12: MSE 0.00330604 - harmo. 8.05372e-05 - max|Jac| 1.1245 - min|Jac| 0.896438 - ratio(|Jac|<=0) 0
13: MSE 0.00322781 - harmo. 7.84552e-05 - max|Jac| 1.12501 - min|Jac| 0.900028 - ratio(|Jac|<=0) 0
14: MSE 0.0031514 - harmo. 7.49553e-05 - max|Jac| 1.12098 - min|Jac| 0.903765 - ratio(|Jac|<=0) 0
15: MSE 0.00308883 - harmo. 7.32658e-05 - max|Jac| 1.12166 - min|Jac| 0.907669 - ratio(|Jac|<=0) 0
16: MSE 0.00302698 - harmo. 7.01593e-05 - max|Jac| 1.118 - min|Jac| 0.911772 - ratio(|Jac|<=0) 0
17: MSE 0.00297759 - harmo. 6.87163e-05 - max|Jac| 1.11871 - min|Jac| 0.916098 - ratio(|Jac|<=0) 0
18: MSE 0.00292755 - harmo. 6.5978e-05 - max|Jac| 1.11575 - min|Jac| 0.920635 - ratio(|Jac|<=0) 0
19: MSE 0.00288478 - harmo. 6.48318e-05 - max|Jac| 1.117 - min|Jac| 0.925321 - ratio(|Jac|<=0) 0
Finished Multi-resolution iteration :2
MSE fixed image vs. warped moving image: 2649.06
Minimum of the determinant of the Jacobian of the warp: 3.40282e+38
Maximum of the determinant of the Jacobian of the warp: -3.40282e+38 |
|
|
Work for axials, but not other orientations. |
|
|
Jim is going to take another run at this, and either abort on non-axials or add an OrientImage filter to convert the inputs to axial. |
|
|
Okay - I added the code to resample to axial and this will work for the 3.4 release. Longer term it would be good if there were a wrapper around all the registration code that would resample back to the fixed image space after doing the transformation. |
|
|
Closing. Slicer3 is not being developed anymore. |
|