[Insight-users] Problem compiling with ITK 3.16.0 in Linux

Alfonso Castro Martinez alfonso.castro at udc.es
Wed Oct 21 05:26:13 EDT 2009


Thanks.

I apologize for  not realize so "easy" error. I'm sorry so much.

Greetings.

Alfonso Castro Martinez
Dept. of Information and Communication Technologies
University of A Coruna
Spain

O Martes 20 Outubro 2009 16:13:42 Bill Lorensen escribiu:
> I see the problem now.
> 
> You have an include file in your source tree:
> /mia/itk/preprocesado tac pulmon/Codigo/src/itkPasteImageFilter.h:53:
>  error:
> 
> but the .txx file is in the itk source tree:
> /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilter.txx:4
> 6:
> 
> Why do you have an itk file in your source tree? I suspect that the
> version of the .h in your source tree does not correspond to the .txx
> file in the itk tree.
> 
> Bill
> 
> 2009/10/20 Alfonso Castro Martinez <alfonso.castro at udc.es>:
> > The code that uses itk:PasteImageFilter:
> >
> > PasteFilterType::Pointer paster = PasteFilterType::New();
> >
> > WriterType::Pointer writerPaste  = WriterType::New();
> >
> > PasteFilterType::InputImageIndexType destIndex;
> >
> > ImageIOType::Pointer gdcmImageIOPaste2 = ImageIOType::New();
> >
> > PasteFilterType::Pointer paster2 = PasteFilterType::New();
> >
> > WriterType::Pointer writerPaste2  = WriterType::New();
> >
> > PasteFilterType::InputImageIndexType destIndex2;
> >
> > PasteFilterType::Pointer getPaste(int indX, int indY){
> >   paster->SetDestinationImage(readerDEST->GetOutput());
> >   paster->SetSourceImage(readerSRC->GetOutput());
> >
> >
> >   destIndex[0] = indX;
> >   destIndex[1] = indY;
> >   paster->SetDestinationIndex( destIndex );
> >
> >   paster->SetSourceRegion( readerSRC->GetOutput()-
> >
> >>GetLargestPossibleRegion());
> >
> >   try
> >   {
> >       paster->Update();
> >   }
> >   catch( itk::ExceptionObject & excp )
> >   {
> >       std::cerr << "Exception thrown while pasting the Images" <<
> > std::endl; std::cerr << excp << std::endl;
> >   }
> >   return(paster);
> > }
> >
> >
> > void PasteImages(char *imGrande, char *imPeque, int indx, int indy, char
> > *name){
> > readerSRC=readSRC(imPeque);
> > readerDEST=readDEST(imGrande);
> > paster=getPaste(indx,indy);
> > writerPaste=writePaste(paster,name);
> > }
> >
> > The entire Paste.h:
> >
> > #include "itkImage.h"
> > #include "itkImageFileReader.h"
> > #include "itkImageFileWriter.h"
> > #include "itkGDCMImageIO.h"
> > #include "itkPasteImageFilter.h"
> >
> > void PasteImages(char *imGrande, char *imPeque, int indx, int indy, char
> > *name);
> > void PasteImages2(char *imGrande2, char *imPeque2, int indx2, int indy2,
> > char *name2);
> >
> > The entire itkPasteImageFilter.h in the source directory of the
> > application:
> >
> >  #ifndef __itkPasteImageFilter_h
> >  #define __itkPasteImageFilter_h
> >
> >  #include "itkInPlaceImageFilter.h"
> >  #include "itkSmartPointer.h"
> >
> >  namespace itk
> >  {
> >
> >  template <class TInputImage, class TSourceImage=TInputImage, class
> > TOutputImage=TInputImage>
> >  class ITK_EXPORT PasteImageFilter:
> >     public InPlaceImageFilter<TInputImage,TOutputImage>
> >  {
> >  public:
> >   typedef PasteImageFilter                              Self;
> >   typedef InPlaceImageFilter<TInputImage,TOutputImage>  Superclass;
> >   typedef SmartPointer<Self>                            Pointer;
> >   typedef SmartPointer<const Self>                      ConstPointer;
> >
> >  itkNewMacro(Self);
> >
> >   itkTypeMacro(PasteImageFilter, InPlaceImageFilter);
> >
> >   typedef typename Superclass::InputImagePointer  InputImagePointer;
> >   typedef typename Superclass::OutputImagePointer OutputImagePointer;
> >   typedef typename TSourceImage::Pointer      SourceImagePointer;
> >   typedef typename TSourceImage::ConstPointer SourceImageConstPointer;
> >   typedef typename TOutputImage::RegionType OutputImageRegionType;
> >   typedef typename TInputImage::RegionType  InputImageRegionType;
> >   typedef typename TSourceImage::RegionType SourceImageRegionType;
> >   typedef typename TOutputImage::PixelType OutputImagePixelType;
> >   typedef typename TInputImage::PixelType  InputImagePixelType;
> >   typedef typename TSourceImage::PixelType SourceImagePixelType;
> >   typedef typename TOutputImage::IndexType OutputImageIndexType;
> >   typedef typename TOutputImage::SizeType  OutputImageSizeType;
> >   typedef typename TInputImage::IndexType  InputImageIndexType;
> >   typedef typename TInputImage::SizeType   InputImageSizeType;
> >   typedef typename TSourceImage::IndexType SourceImageIndexType;
> >   typedef typename TSourceImage::SizeType  SourceImageSizeType;
> >   itkStaticConstMacro(InputImageDimension, unsigned int,
> >                      TInputImage::ImageDimension);
> >  itkStaticConstMacro(OutputImageDimension, unsigned int,
> >                       TOutputImage::ImageDimension);
> >   itkStaticConstMacro(SourceImageDimension, unsigned int,
> >                      TSourceImage::ImageDimension);
> >   itkSetMacro(DestinationIndex, InputImageIndexType);
> >   itkGetMacro(DestinationIndex, InputImageIndexType);
> >
> >  itkSetMacro(SourceRegion, SourceImageRegionType);
> >  itkGetMacro(SourceRegion, SourceImageRegionType);
> >   void SetDestinationImage(TInputImage *dest) { this->SetNthInput(0,
> > dest); } const TInputImage* GetDestinationImage() { return
> > this->GetInput(0); } void SetSourceImage(TSourceImage *src) {
> > this->SetNthInput(1, src); } const TSourceImage* GetSourceImage() {
> > return this->GetInput(1); } virtual void GenerateInputRequestedRegion();
> >
> >  protected:
> >   PasteImageFilter();
> >   ~PasteImageFilter() {};
> >  void PrintSelf(std::ostream& os, Indent indent) const;
> >  void ThreadedGenerateData(const OutputImageRegionType&
> > outputRegionForThread,
> >                             int threadId );
> >   SourceImageRegionType m_SourceRegion;
> >   InputImageIndexType   m_DestinationIndex;
> >  private:
> >   PasteImageFilter(const Self&); //purposely not implemented
> >  void operator=(const Self&); //purposely not implemented
> >  };
> >
> >  } // end namespace itk
> >  #ifndef ITK_MANUAL_INSTANTIATION
> >  #include "itkPasteImageFilter.txx"
> >  #endif
> >
> >  #endif
> >
> >
> > Thanks in advance.
> >
> > Alfonso Castro Martinez
> > Dept. of Information and Communication Technologies
> > University of A Coruna
> > Spain
> >
> > O Luns 19 Outubro 2009 15:05:12 Bill Lorensen escribiu:
> >> Can you show the statement in your code that uses the
> >>  itk::PasteImageFilter?
> >>
> >> Bill
> >>
> >> 2009/10/19 Alfonso Castro Martinez <alfonsocastro at udc.es>:
> >> > Thanks for your reply.
> >> >
> >> > We are using the class to join a TAC separated in two images: left
> >> > lobe and right lobe.
> >> >
> >> > The error is in a include file: Paste.h in our source:
> >> >
> >> > #include "itkImage.h"
> >> > #include "itkImageFileReader.h"
> >> > #include "itkImageFileWriter.h"
> >> > #include "itkGDCMImageIO.h"
> >> > #include "itkPasteImageFilter.h"
> >> >
> >> > void PasteImages(char *imGrande, char *imPeque, int indx, int indy,
> >> > char *name);
> >> > void PasteImages2(char *imGrande2, char *imPeque2, int indx2, int
> >> > indy2, char *name2);
> >> >
> >> > From there the message error comes from itkPasteImageFilter.txx in the
> >> > source directory of ITK in line 46, the  code in this position:
> >> >
> >> > template <class TInputImage, class TSourceImage, class TOutputImage>
> >> > void
> >> > PasteImageFilter<TInputImage,TSourceImage,TOutputImage>
> >> >
> >> > ::SetSourceImage(const SourceImageType *src)
> >> >
> >> > {
> >> >  // Process object is not const-correct so the const casting is
> >> > required. this->SetNthInput(1, const_cast<SourceImageType *>( src ));
> >> > }
> >> >
> >> >
> >> > Thanks in advance.
> >> >
> >> > Alfonso Castro Martinez
> >> > Dept. of Information and Communication Technologies
> >> > University of A Coruna
> >> > Spain
> >> >
> >> > O Venres 16 Outubro 2009 05:55:09 escribiches:
> >> >> Luis,
> >> >>
> >> >> Perhaps the const correctness changes you made to itkPasteImageFilter
> >> >> are not bacward compatible?
> >> >>
> >> >> Alfonso,
> >> >>
> >> >> How are you using this class? Our intent is to not break backward
> >> >>  compatibility.
> >> >>
> >> >> Bill
> >> >>
> >> >> 2009/10/14 Alfonso Castro Martinez <alfonsocastro at udc.es>:
> >> >> > Hi.
> >> >> >
> >> >> > I have a program to preprocess lung TACs made with ITK. I don't
> >> >> > have problems compiling this program in OpenSuSE 11.1 x86_64 with
> >> >> > ITK 3.12.0 but when I compile it with ITK 3.16.0. I obtain the next
> >> >> > error:
> >> >> >
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:46: error: expected ‘,’ or ‘...’ before ‘*’ token
> >> >> >
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:46: error: ISO C++ forbids declaration of ‘SourceImageType’ with no
> >> >> >: type
> >> >> >
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:46: error: prototype for ‘void itk::PasteImageFilter<TInputImage,
> >> >> >
> >> >> > TSourceImage, TOutputImage>::SetSourceImage(int)’ does not match
> >> >> > any in class
> >> >> > ‘itk::PasteImageFilter<TInputImage, TSourceImage, TOutputImage>’
> >> >> > /mia/itk/preprocesado tac
> >> >> > pulmon/Codigo/src/itkPasteImageFilter.h:53: error: candidate is:
> >> >> > void itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::SetSourceImage(TSourceImage*)
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:55: error: prototype for ‘const typename
> >> >> >
> >> >> > itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::SourceImageType*
> >> >> > itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::GetSourceImage() const’ does not match any in class
> >> >> > ‘itk::PasteImageFilter<TInputImage, TSourceImage, TOutputImage>’
> >> >> > /mia/itk/preprocesado tac
> >> >> > pulmon/Codigo/src/itkPasteImageFilter.h:54: error: candidate is:
> >> >> > const TSourceImage*
> >> >> > itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::GetSourceImage()
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:65: error: expected ‘,’ or ‘...’ before ‘*’ token
> >> >> >
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:65: error: ISO C++ forbids declaration of ‘InputImageType’ with no
> >> >> >: type
> >> >> >
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:65: error: prototype for ‘void itk::PasteImageFilter<TInputImage,
> >> >> >
> >> >> > TSourceImage, TOutputImage>::SetDestinationImage(int)’ does not
> >> >> > match any in class ‘itk::PasteImageFilter<TInputImage,
> >> >> > TSourceImage, TOutputImage>’ /mia/itk/preprocesado tac
> >> >> > pulmon/Codigo/src/itkPasteImageFilter.h:51: error: candidate is:
> >> >> > void itk::PasteImageFilter<TInputImage,
> >> >> > TSourceImage, TOutputImage>::SetDestinationImage(TInputImage*)
> >> >> > /toolkits/InsightToolkit-3.16.0/Code/BasicFilters/itkPasteImageFilt
> >> >> >er. txx
> >> >> >
> >> >> >:74: error: prototype for ‘const typename
> >> >> >
> >> >> > itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::InputImageType*
> >> >> > itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>::GetDestinationImage() const’ does not match any in
> >> >> > class ‘itk::PasteImageFilter<TInputImage, TSourceImage,
> >> >> > TOutputImage>’
> >> >> >
> >> >> > Can some help me, please?
> >> >> >
> >> >> > Thanks in advance.
> >> >> >
> >> >> > Alfonso Castro Martinez
> >> >> > Dept. of Information and Communication Technologies
> >> >> > University of A Coruna
> >> >> > Spain
> >> >> > _____________________________________
> >> >> > Powered by www.kitware.com
> >> >> >
> >> >> > Visit other Kitware open-source projects at
> >> >> > http://www.kitware.com/opensource/opensource.html
> >> >> >
> >> >> > Please keep messages on-topic and check the ITK FAQ at:
> >> >> > http://www.itk.org/Wiki/ITK_FAQ
> >> >> >
> >> >> > Follow this link to subscribe/unsubscribe:
> >> >> > http://www.itk.org/mailman/listinfo/insight-users
> 


More information about the Insight-users mailing list