0

我正在尝试使用归一化互信息的度量来对 3D MR 图像进行刚性配准。这是我的代码的一部分:

    #include “itkImageRegistrationMethodv4.h”
    #include “itkVersorRigid3DTransform.h”
    #include “itkCenteredTransformInitializer.h”
    #include “itkNormalizedMutualInformationHistogramImageToImageMetric.h”
    #include “itkRegularStepGradientDescentOptimizerv4.h”

    #include “itkImageFileReader.h”
    #include “itkImageFileWriter.h”
    #include “itkResampleImageFilter.h”
    #include “itkCastImageFilter.h”

    int main(int argc, const char *argv[])
    {

    // parsing parameters …

    using TransformType = itk::VersorRigid3DTransform;

    using RegistrationType =
    itk::ImageRegistrationMethodv4<FixedImageType, MovingImageType, TransformType>;

    RegistrationType::Pointer registration = RegistrationType::New();

    using MetricType = itk::NormalizedMutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>;

    MetricType::Pointer metric = MetricType::New();
    registration->SetMetric(metric);

    //…
    }

我收到以下错误:

   error: no viable conversion from ‘MetricType::Pointer’ (aka
    ‘SmartPointer<itk::NormalizedMutualInformationHistogramImageToImageMetric<itk::Image<double, 3>, itk::Image<double, 3> > >’) to
    ‘itk::ImageRegistrationMethodv4<itk::Image<double, 3>, itk::Image<double, 3>, itk::VersorRigid3DTransform, itk::Image<double, 3>, itk::PointSet<unsigned
    int, 3, itk::DefaultStaticMeshTraits<unsigned int, 3, 3, float, float, unsigned int> > >::MetricType *’ (aka ‘ObjectToObjectMetricBaseTemplate *’)
    registration->SetMetric(metric);
                  ^~~~~~

我正在使用 ITK5.0.1。有谁知道这里发生了什么?任何意见?谢谢你。

4

0 回答 0