[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