Advertisement

ITK:创建另一个图像实例

阅读量:

该文本介绍了一个使用ITK库在C++中创建相同类型的图像实例的方法,并展示了如何通过CreateImageWithSameType函数复制图像实例以及如何通过OutputImageType函数验证输入类型的有效性。代码中定义了浮点数标量图像类型,并实现了两个关键功能:CreateImageWithSameType用于生成相同类型的副本,并进行类型检查;OutputImageType用于输出并验证输入是否为指定类型。

ITK:创建另一个图像实例

  • 内容提要
  • 输出结果
  • C++实现代码

内容提要

创建图像的另一个实例。

输出结果

复制代码
    Image type FloatScalarImageType
    Image type FloatScalarImageType
    Image type FloatScalarImageType

C++实现代码

复制代码
    #include "itkImage.h"
    using FloatScalarImageType = itk::Image<float, 2>;
    itk::ImageBase<2>::Pointer CreateImageWithSameType(const itk::ImageBase<2> * input);
    void OutputImageType(const itk::ImageBase<2> * input);
    int main(int, char *[])
    {
      FloatScalarImageType::Pointer floatImage = FloatScalarImageType::New();
      itk::ImageBase<2>::Pointer    floatCopy = CreateImageWithSameType(floatImage);
      OutputImageType(floatCopy);
      return EXIT_SUCCESS;
    }
    itk::ImageBase<2>::Pointer CreateImageWithSameType(const itk::ImageBase<2> * input)
    {
      OutputImageType(input);
      itk::LightObject::Pointer objectCopyLight = input->CreateAnother();
      itk::ImageBase<2>::Pointer objectCopy = dynamic_cast<itk::ImageBase<2> *>(objectCopyLight.GetPointer());
      OutputImageType(objectCopy);
      return objectCopy;
    }
    
    void OutputImageType(const itk::ImageBase<2> * input)
    {
      if (dynamic_cast<const FloatScalarImageType *>(input))
      {
    std::cout << "Image type FloatScalarImageType" << std::endl;
      }
      else
      {
    std::cout << "Image is Invalid type!" << std::endl;
      }
    }

全部评论 (0)

还没有任何评论哟~