ITK:There are no registered IO factories

    计算机系统:Win8.1 (64 bit)

    ITK版本:4.7.2

    编译器:MSVC 2012 (64 bit)

1 问题描述

    在使用下面的类进行图像的读写时候,提示题目所示的错误。 

  typedef unsigned char          PixelType;
  const   unsigned int  Dimension = 2;
  typedef itk::Image< PixelType, Dimension >    ImageType;
  typedef itk::ImageFileReader< ImageType >  ReaderType;
  typedef itk::ImageFileWriter< ImageType >  WriterType;
    错误如下图所示:

ITK:There are no registered IO factories_第1张图片

2 解决方法

    使用下面的函数进行图像factory注册:

itk::PNGImageIOFactory::RegisterOneFactory();
itk::TIFFImageIOFactory::RegisterOneFactory();
itk::BMPImageIOFactory::RegisterOneFactory();

    上述的函数,分别实现对PNG图像,TIFF图像已经BMP图像的factory注册。

    注意:在使用读写函数前,要先注册对应格式的factory。另外,要包含相应的头文件:

#include "itkPNGImageIOFactory.h"
#include "itkBMPImageIOFactory.h"
#include "itkTIFFImageIOFactory.h"

3 原理说明

    关于为什么要这样做的原因,可以细读InsightSoftwareGuide-Book2-4.7.1的第1.2小节Pluggable Factories(参考资料[1])。

参考资料

[1]InsightSoftwareGuide-Book2-4.7.1.pdf

你可能感兴趣的:(ITK:There are no registered IO factories)