ANTsX / ANTsR

R interface to the ANTs biomedical image processing library
https://antsx.github.io/ANTsR
Apache License 2.0
127 stars 35 forks source link

Test to check CC metric under SyN registration #199

Closed VeroAra closed 6 years ago

VeroAra commented 6 years ago

I call antsMotionCorrection to perform registration of my images using SyN transform and CC as optimization metric:

antsMotionCorr( list( d = 2 , o = list( mocoParams , mocoImg , aimg ) , m = list( name = "CC" , aimg , movingImage=regCONTROL_CX , metricWeight=1 , radius=1 , samplingStrategy="Regular", samplingPercentage=0.2 ) , t = "SyN[0.04, 3, 0]" , i = "3000x3000", u = 1, e = 1 , s = "0x0", f = "5x2", n=1 , v = as.numeric(TRUE))) #TRUE: to write comments during executing. FALSE: to avoid comments

With antsRegistration command SyN has mutual information as optimization metric. I understand that as with antsMotionCorr I am specifying CC as optimization metric, this will be somehow equivalent to SyNCC.

Visually results are good. When computing the antsImageMutualInformation command to check the MI metric between the fixed and the registered images, I get the following information where the red dot represent the fixed image. Original MI values were negative (because of minimization optimization that was posted in another issue #https://github.com/ANTsX/ANTs/issues/498 ) so I changed their sign. I would expect the red dots to have the greater values of MI (same image compared with its registration version), but this is not the case for some subjects (vol12 and vol21). image

Is it because I am using CC as the optimization metric that I do not get the expected results ? Is there an equivalent test for CC in ANTsR? I see the itk cross correlation function that is being called (ANTs/ImageRegistration/itkCrossCorrelationRegistrationFunction.h), is it possible to compute it from ANTsR? or ANTs?

Thank you very much!

VeroAra commented 6 years ago

The output variable "Mocoparams" saves the CC metricPost value for each image. motiondf <- as.data.frame(mocoParams)