[Insight-users] Linking problem with itkBinaryImageToStatisticsLabelMapFilter

Lassi Paavolainen lassi.paavolainen at jyu.fi
Wed Jan 27 18:07:21 EST 2010


Hi Roman,

Are you linking to ITKStatistics in your CMakeLists.txt file?

Lassi

On Wed, 27 Jan 2010, Roman Grothausmann wrote:

> Dear mailing list members,
>
>
> I need the sum of grey values in labels now so I changed my code (see below) 
> from itkBinaryImageToShapeLabelMapFilter to 
> itkBinaryImageToStatisticsLabelMapFilter. Now it still compiles but I get a 
> lot linking errors (see further below).
>
> What can I do about that? I tried with the new statistics API but that didn't 
> help either.
>
> Any help is very much appreciated
> Roman
>
>
> _____________________________
>
>
>    typedef unsigned short LabelType;
>    typedef itk::StatisticsLabelObject< LabelType, dim > LabelObjectType;
>    typedef itk::LabelMap< LabelObjectType > LabelMapType;
>
>    typedef itk::BinaryImageToStatisticsLabelMapFilter<OutputImageType, 
> GreyImageType, LabelMapType > ConverterType;
>    ConverterType::Pointer converter = ConverterType::New();
>    converter->SetInput(thr->GetOutput());
>    converter->SetFeatureImage(vtkitkf->GetOutput());
>    converter->SetFullyConnected(true); //true: 26-connectivity; false: 
> 6-connectivity
>    converter->SetComputePerimeter(false);
>    converter->Update();
>
>    vtkPoints* fpoints = vtkPoints::New();
>    FILE *off;
>    off= fopen ((fn + ".fdat").data(),"w");
>    double c_x, c_y, c_z;
>
>    LabelMapType::Pointer labelMap = converter->GetOutput();
>    for( unsigned int label=1; label<=labelMap->GetNumberOfLabelObjects(); 
> label++ )
>        {
>        const LabelObjectType * labelObject = labelMap->GetLabelObject( label 
> );
> //         c_x= labelObject->GetCentroid()[0];
> //         c_y= labelObject->GetCentroid()[1];
> //         c_z= labelObject->GetCentroid()[2];
>        c_x= labelObject->GetCenterOfGravity()[0];
>        c_y= labelObject->GetCenterOfGravity()[1];
>        c_z= labelObject->GetCenterOfGravity()[2];
>        fprintf(off, "%d\t%f\t%f\t%f\t%ld\t%f\n",label, c_x, c_y, c_z, 
> labelObject->GetSize(), labelObject->GetSum());
>        fpoints->InsertNextPoint(c_x, c_y, c_z);
>        }
>    fclose(off);
>
> _______________________________________________
>
> Scanning dependencies of target ana_04 
> [ 25%] Building CXX object CMakeFiles/ana_04.dir/ana_04.o 
> Linking CXX executable ana_04 
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::ObjectFactory<itk::Statistics::DenseFrequencyContainer2>::Create()':
> ana_04.cxx:(.text._ZN3itk13ObjectFactoryINS_10Statistics24DenseFrequencyContainer2EE6CreateEv[itk::ObjectFactory<itk::Statistics::DenseFrequencyContainer2>::Create()]+0xe): 
> undefined reference to `typeinfo for 
> itk::Statistics::DenseFrequencyContainer2'
> ana_04.cxx:(.text._ZN3itk13ObjectFactoryINS_10Statistics24DenseFrequencyContainer2EE6CreateEv[itk::ObjectFactory<itk::Statistics::DenseFrequencyContainer2>::Create()]+0x4f): 
> undefined reference to `typeinfo for 
> itk::Statistics::DenseFrequencyContainer2'
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::GetFrequency(unsigned long) 
> const':
> ana_04.cxx:(.text._ZNK3itk10Statistics9HistogramIdNS0_24DenseFrequencyContainer2EE12GetFrequencyEm[itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::GetFrequency(unsigned long) 
> const]+0x28): undefined reference to 
> `itk::Statistics::DenseFrequencyContainer2::GetFrequency(unsigned long) 
> const'
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::Statistics::DenseFrequencyContainer2::New()':
> ana_04.cxx:(.text._ZN3itk10Statistics24DenseFrequencyContainer23NewEv[itk::Statistics::DenseFrequencyContainer2::New()]+0x3c): 
> undefined reference to 
> `itk::Statistics::DenseFrequencyContainer2::DenseFrequencyContainer2()'
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::SetToZero()':
> ana_04.cxx:(.text._ZN3itk10Statistics9HistogramIdNS0_24DenseFrequencyContainer2EE9SetToZeroEv[itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::SetToZero()]+0x20): undefined 
> reference to `itk::Statistics::DenseFrequencyContainer2::SetToZero()'
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::Initialize(itk::Array<unsigned 
> long> const&)':
> ana_04.cxx:(.text._ZN3itk10Statistics9HistogramIdNS0_24DenseFrequencyContainer2EE10InitializeERKNS_5ArrayImEE[itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::Initialize(itk::Array<unsigned 
> long> const&)]+0x5c3): undefined reference to 
> `itk::Statistics::DenseFrequencyContainer2::Initialize(unsigned long)'
> CMakeFiles/ana_04.dir/ana_04.o: In function 
> `itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::IncreaseFrequency(unsigned long, 
> unsigned long)':
> ana_04.cxx:(.text._ZN3itk10Statistics9HistogramIdNS0_24DenseFrequencyContainer2EE17IncreaseFrequencyEmm[itk::Statistics::Histogram<double, 
> itk::Statistics::DenseFrequencyContainer2>::IncreaseFrequency(unsigned long, 
> unsigned long)]+0x30): undefined reference to 
> `itk::Statistics::DenseFrequencyContainer2::IncreaseFrequency(unsigned long, 
> unsigned long)'
> collect2: ld returned 1 exit status
> make[2]: *** [ana_04] Fehler 1
> make[1]: *** [CMakeFiles/ana_04.dir/all] Fehler 2
> make: *** [all] Fehler 2
>
>

-- 
Lassi Paavolainen, M.Sc
Software Engineer, PhD Student in Computer Science
BioImageXD (http://www.bioimagexd.net)
University of Jyväskylä
lassi.paavolainen at jyu.fi


More information about the Insight-users mailing list