[Insight-users] new filetype reader

Karthik Krishnan Karthik.Krishnan at kitware.com
Thu Oct 6 08:35:27 EDT 2005


You need to update your ITK version. The build errors seem to point to
the DefaultConvertPixelTraits class. Support for read/writing of complex
pixels (pixels of type std::complex< .. >) wasn't added until after 2.0
was released. BTW, ITK 2.2 was released a while ago.

http://www.itk.org/cgi-bin/viewcvs.cgi/Code/IO/itkDefaultConvertPixelTraits.h?root=Insight&r1=text&tr1=1.15&r2=text&tr2=1.14&diff_format=h

-karthik


On Wed, 2005-10-05 at 11:41 -0400, Jesse C Cronce wrote:
> All,
> 
>     I am developing a file reader for a new file type. The data in the
> file is time series image data which has been FFTransformed. What I am
> trying to do is inverse fourier the data, and then dump it out into an
> analyze (or any of the other supported file formats) file. 
> 
> Unfortunately I am running into some difficulty. I have attached a
> sample program and the compiler output. It appears as though I cannot
> use std::complex< float> as the pixel type, which is what p309 of the
> manual http://www.itk.org/ItkSoftwareGuide.pdf seems to indicate should
> be fine.
> 
> My ITK version is 2.0.1.
> 
> Sorry for such a basic question. I'm an ITK noob.
> 
> Thanks in advance for all the help!
> JCC
> 
> ---VVV---   PROGRAM   ---VVV---
> 
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkImage.h"
> #include "itkSiscoImageIO.h"
> #include "itkSiscoImageIOFactory.h"
> #include "itkVnlFFTComplexConjugateToRealImageFilter.h"
> #include "itkVnlFFTRealToComplexConjugateImageFilter.h"
> #include "itkImageRegionIterator.h"
> 
> using namespace itk;
> 
> int main( int argc, char ** argv )
> {
> 
>     itk::ObjectFactoryBase::RegisterFactory
> ( itk::SiscoImageIOFactory::New() );
> 
>     // Verify the number of parameters in the command line
>     if( argc < 3 )
>     {
>         std::cerr << "Usage: " << std::endl;
>         std::cerr << argv[0] << " inputImageFile outputImageFile " <<
> std::endl;        return -1;
>     }
> 
>     typedef std::complex< float > CPixelType;
>     typedef float RPixelType;
>     const unsigned int Dimension = 3;
>     typedef itk::Image< CPixelType, Dimension > CompImageType;
>     typedef itk::Image< RPixelType, Dimension > RealImageType;
> 
>     typedef itk::ImageFileReader< CompImageType >  ReaderType;
>     typedef itk::ImageFileWriter< RealImageType >  WriterType;
> 
>     typedef itk::VnlFFTComplexConjugateToRealImageFilter< RPixelType,
>         Dimension > iffttype;
> 
>     ReaderType::Pointer reader = ReaderType::New();
>     WriterType::Pointer writer = WriterType::New();
>     iffttype::Pointer C2R = iffttype::New();
> 
>     const char * inputFilename  = argv[1];
>     const char * outputFilename = argv[2];
> 
>     reader->SetFileName( inputFilename  );
>     writer->SetFileName( outputFilename );
> 
>     C2R->SetInput( reader->GetOutput() );    try
>     {
>         C2R->Update();
>     }
>     catch( itk::ExceptionObject & err )
>     {
>         std::cout << "ExceptionObject caught !" << std::endl;
>         std::cout << err << std::endl;
>         return -1;
>     }
> 
>     writer->SetInput( C2R->GetOutput() );
> 
>     try
>     {
>         writer->Update();
>     }
>     catch( itk::ExceptionObject & err )
>     {
>         std::cout << "ExceptionObject caught !" << std::endl;
>         std::cout << err << std::endl;
>         return -1;
>     }
> 
>     return 0;
> }
> 
> 
> ---VVV---   OUTPUT HERE   ---VVV---
> 
> Script started on Wed 05 Oct 2005 11:29:59 AM EDT
> linux^M
> ~/MRRC_SRC/tmp> make^M^M
> g++ -g -Wall -g -I/usr/openwin/include -I/usr/local/include -
> I/usr/freeware/include/mysql -I../common -
> I/usr/local/include/InsightToolkit/IO/ -
> I/usr/local/include/InsightToolkit/ -
> I/usr/local/include/InsightToolkit/Common/ -
> I/usr/local/include/InsightToolkit/Algorithms/ -
> I/usr/local/include/InsightToolkit/Utilities/vxl/vcl/ -
> I/usr/local/include/InsightToolkit/Utilities/vxl/core -
> I/usr/local/include/InsightToolkit/Utilities/ -c SiscoToAnalyze.C ^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h: In
> instantiation of `itk::DefaultConvertPixelTraits<main(int,
> char**)::CPixelType>':^M
> /usr/local/include/InsightToolkit/IO/itkImageFileReader.txx:308:
> instantiated from `void itk::ImageFileReader<TOutputImage,
> ConvertPixelTraits>::GenerateData() [with TOutputImage = main(int,
> char**)::CompImageType, ConvertPixelTraits =
> itk::DefaultConvertPixelTraits<main(int, char**)::CPixelType>]'^M
> SiscoToAnalyze.C:45:   instantiated from here^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h:43:
> error: no type named `ComponentType' in `class main(int,
> char**)::CPixelType'^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h:51:
> error: no type named `ComponentType' in `class main(int,
> char**)::CPixelType'^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h:55:
> error: no type named `ComponentType' in `class main(int,
> char**)::CPixelType'^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h:59:
> error: no type named `ComponentType' in `class main(int,
> char**)::CPixelType'^M
> /usr/local/include/InsightToolkit/IO/itkImageFileReader.txx: In member
> function `void itk::ImageFileReader<TOutputImage,
> ConvertPixelTraits>::GenerateData() [with TOutputImage = main(int,
> char**)::CompImageType, ConvertPixelTraits =
> itk::DefaultConvertPixelTraits<main(int, char**)::CPixelType>]':^M
> SiscoToAnalyze.C:45:   instantiated from here^M
> /usr/local/include/InsightToolkit/IO/itkImageFileReader.txx:308: error:
> no type named `ComponentType' in `class
> itk::DefaultConvertPixelTraits<main(int, char**)::CPixelType>'^M
> SiscoToAnalyze.C:45:   instantiated from here^M
> /usr/local/include/InsightToolkit/IO/itkImageFileReader.txx:329: error:
> no type named `ComponentType' in `class
> itk::DefaultConvertPixelTraits<main(int, char**)::CPixelType>'^M
> /usr/local/include/InsightToolkit/Common/itkImageBase.txx: In member
> function `void itk::ImageBase<VImageDimension>::ComputeOffsetTable()
> [with unsigned int VImageDimension = 3u]':^M
> /usr/local/include/InsightToolkit/Common/itkImageBase.txx:309:
> instantiated from `void
> itk::ImageBase<VImageDimension>::SetBufferedRegion(const
> itk::ImageRegion<VImageDimension>&) [with unsigned int VImageDimension =
> 3u]'^M
> SiscoToAnalyze.C:45:   instantiated from here^M
> /usr/local/include/InsightToolkit/Common/itkImageBase.txx:135: warning:
> long int format, unsigned int arg (arg 2)^M
> /usr/local/include/InsightToolkit/IO/itkDefaultConvertPixelTraits.h: In
> static member function `static unsigned int
> itk::DefaultConvertPixelTraits<PixelType>::GetNumberOfComponents() [with
> PixelType = main(int, char**)::CPixelType]':^M
> 
> (and it keeps on going and going. If more is needed, please ask)
> 
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list