[Insight-users] Re: make problem

Luis Ibanez luis.ibanez at kitware.com
Wed Oct 10 08:44:25 EDT 2007


Hi Burak,

It seems that you forgot to put typedefs for "Pointer"
in the definition of the class: myLevelSetFunction"

We will need the source code of "myLevelSetFunction.h"
to verify this.

Please post that header file to the mailing list if you
are still interested in further advice.

Otherwise, please look at files such as

     itkShapeDetectionLevelSetFunction.h
     itkGeodesicActiveContoursLevelSetFunction.h

for examples on the basic typedefs that you should
have in a class that is managed by SmartPointers.


    Thanks


       Luis


----------------------
Burak Özkalaycı wrote:
> I figured out that to have a working segmentationLevelSetFunction I
> have to implement the CalculateSpeedImage in a subclass. That's why I
> changed my code a little bit and I attach it with the make error log.
> Thanks again
> 
> Burak
> 
> Revised code
> ===============================
> // file name : tpls_main.cpp
> 
> #if defined(_MSC_VER)
> #pragma warning ( disable : 4786 )
> #endif
> 
> #ifdef __BORLANDC__
> #define ITK_LEAN_AND_MEAN
> #endif
> 
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> 
> #include "itkSegmentationLevelSetFunction.h"
> 
> template <class TImageType, class TFeatureImageType>
> class myLevelSetFunction:itk::SegmentationLevelSetFunction<TImageType,
> TFeatureImageType>
> {
>   void CalculateSpeedImage()
>   {
>     this->SetSpeedImage(this->GetFeatureImage);
>   }
> };
> 
> int main( int argc, char *argv[] )
> {
>   // Input Image
>   typedef   float           InputPixelType;
>   const     unsigned int    Dimension = 3;
>   typedef itk::Image< InputPixelType, Dimension >  InputImageType;
> 
>   // Internal Image
>   typedef   float           InternalPixelType;
>   typedef itk::Image< InternalPixelType, Dimension >  InternalImageType;
> 
>   // Output Image
>   typedef float OutputPixelType;
>   typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
> 
>   typedef  itk::ImageFileReader< InternalImageType > ReaderType;
>   typedef  itk::ImageFileWriter<  OutputImageType  > WriterType;
> 
>   // Read write initialization
>   ReaderType::Pointer reader1 = ReaderType::New();
>   ReaderType::Pointer reader2 = ReaderType::New();
>   WriterType::Pointer writer = WriterType::New();
> 
>   reader1->SetFileName( argv[1] );
>   reader2->SetFileName( argv[2] );
>   writer->SetFileName(  argv[3] );
> 
>   // MAIN ALGORITHM CAN START HERE !!
> 
>   typedef myLevelSetFunction<InternalImageType, InternalImageType>
> LSFunctionType;
>   LSFunctionType::Pointer LS_function = LSFunctionType::New();
> 
>   return 0;
> }
> ===============================
> 
> the make error log:
> ===============================
> make
> Scanning dependencies of target tpls_main
> [100%] Building CXX object CMakeFiles/tpls_main.dir/tpls_main.o
> /home/xonobo/itk/InsightToolkit-3.2.0/Code/Common/itkSegmentationLevelSetFunction.h:
> In function 'int main(int, char**)':
> /home/xonobo/itk/InsightToolkit-3.2.0/Code/Common/itkSegmentationLevelSetFunction.h:52:
> error: 'typedef class
> itk::SmartPointer<itk::SegmentationLevelSetFunction<itk::Image<float,
> 3u>, itk::Image<float, 3u> > >
> itk::SegmentationLevelSetFunction<itk::Image<float, 3u>,
> itk::Image<float, 3u> >::Pointer' is inaccessible
> /home/xonobo/CPP/itk_based/itkTPLS/tpls_main.cpp:80: error: within this context
> /home/xonobo/itk/InsightToolkit-3.2.0/Code/Common/itkLevelSetFunction.h:75:
> error: 'static itk::SmartPointer<itk::LevelSetFunction<TImageType> >
> itk::LevelSetFunction<TImageType>::New() [with TImageType =
> itk::Image<float, 3u>]' is inaccessible
> /home/xonobo/CPP/itk_based/itkTPLS/tpls_main.cpp:80: error: within this context
> /home/xonobo/CPP/itk_based/itkTPLS/tpls_main.cpp:80: error: conversion
> from 'itk::SmartPointer<itk::LevelSetFunction<itk::Image<float, 3u> >
> 
>>' to non-scalar type
> 
> 'itk::SmartPointer<itk::SegmentationLevelSetFunction<itk::Image<float,
> 3u>, itk::Image<float, 3u> > >' requested
> make[2]: *** [CMakeFiles/tpls_main.dir/tpls_main.o] Error 1
> make[1]: *** [CMakeFiles/tpls_main.dir/all] Error 2
> make: *** [all] Error 2
> ===============================
> _______________________________________________
> 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