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)
还没有任何评论哟~
