ITK读写ImageFileReaderException问题

**用户层面**:itkImageFileReader(读) itkImageFileWriter(写)
**内部实现**:由内部ImageIO对象具体负责图像文件读写操作,该对象通过对象工厂根据用户输入文件类型生成相应的ImageIO对象
**优点**
* 使用方便,用户无须关注内部实现细节 * 扩展方便,扩展支持新的图像读取而无须修改用户接口,只需添加相应的工厂类和IO类
运行下面的代码:
#**include** "itkImage.h" #**include** "itkImageFileReader.h" #**include** "itkImageFileWriter.h" **int** main(**int** argc, **char*** argv[]) { **const** **unsigned** **int** Dimension = 2; //定义图像维数 **typedef** **unsigned** **char** PixelType; //定义像素类型 **typedef** itk::Image< PixelType, Dimension > ImageType; //图像类型 **typedef** itk::ImageFileReader< ImageType > ReaderType; **typedef** itk::ImageFileWriter< ImageType > WriterType; ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName("d:\\1.png"); WriterType::Pointer writer = WriterType::New(); writer->SetFileName("d:\\11.png"); writer->SetInput(reader->GetOutput()); writer->Update(); **return** 0; }
运行中出现itk::ImageFileReaderException。
itk example中也有这样不指定读写类型的,可以运行。但是单独使用时,却出现无法识别类型的问题。
出错信息如下:
ExceptionObject caught!itk::ImageFileReaderException (0028F27C) Location: "void __thiscall itk::ImageFileReader<class itk::Image<unsigned char,2 >,class itk::DefaultConvertPixelTraits<unsigned char> >::GenerateOutputInformati on(void)" File: c:\program files (x86)\itk\include\itk-4.4\itkimagefilereader.hxx Line: 143 Description: Could not create IO object **for** file d:\1.png Tried to create one of the following: You probably failed to set a file suffix, or set the suffix to an unsupported type.
只能通过指定图片类型的方式解决,具体原因不明。
typedef itk::PNGImageIO ImageIOType;
ImageIOType::Pointer pngIO = ImageIOType::New();
reader->SetImageIO(pngIO);
writer->SetImageIO(pngIO);
坚持原创技术分享,您的支持将鼓励我继续创作!