ITK/Examples/Statistics/MembershipSample

From KitwarePublic
< ITK‎ | Examples
Revision as of 13:08, 19 November 2010 by Lorensen (talk | contribs) (Wrong signature for main.)
Jump to navigationJump to search

MembershipSample.cxx

<source lang="cpp">

  1. include "itkListSample.h"
  2. include "itkMembershipSample.h"
  3. include "itkVector.h"

int main(int, char *[]) {

 typedef itk::Vector< float, 3 > MeasurementVectorType;
 typedef itk::Statistics::ListSample< MeasurementVectorType > SampleType;
 SampleType::Pointer sample = SampleType::New();
 MeasurementVectorType mv;
 mv[0] = 1.0;
 mv[1] = 2.0;
 mv[2] = 4.0;
 sample->PushBack(mv);
 mv[0] = 2.0;
 mv[1] = 4.0;
 mv[2] = 5.0;
 sample->PushBack(mv);
 mv[0] = 3.0;
 mv[1] = 8.0;
 mv[2] = 6.0;
 sample->PushBack(mv);
 typedef itk::Statistics::MembershipSample< SampleType >
   MembershipSampleType;
 MembershipSampleType::Pointer membershipSample =
   MembershipSampleType::New();
 membershipSample->SetSample(sample);
 membershipSample->SetNumberOfClasses(2);
 membershipSample->AddInstance(0U, 0UL );
 membershipSample->AddInstance(0U, 1UL );
 membershipSample->AddInstance(1U, 2UL );
 MembershipSampleType::ConstIterator iter = membershipSample->Begin();
 while ( iter != membershipSample->End() )
   {
   std::cout << "instance identifier = " << iter.GetInstanceIdentifier()
             << "\t measurement vector = "
             << iter.GetMeasurementVector()
             << "\t frequency = "
             << iter.GetFrequency()
             << "\t class label = "
             << iter.GetClassLabel()
             << std::endl;
   ++iter;
   }


 MembershipSampleType::ClassSampleType::ConstPointer classSample =
   membershipSample->GetClassSample( 0 );
 MembershipSampleType::ClassSampleType::ConstIterator c_iter =
   classSample->Begin();
 while ( c_iter != classSample->End() )
   {
   std::cout << "instance identifier = " << c_iter.GetInstanceIdentifier()
             << "\t measurement vector = "
             << c_iter.GetMeasurementVector()
             << "\t frequency = "
             << c_iter.GetFrequency() << std::endl;
   ++c_iter;
   }
 return EXIT_SUCCESS;

} </source>

CMakeLists.txt

<source lang="cmake"> cmake_minimum_required(VERSION 2.6)

PROJECT(MembershipSample)

FIND_PACKAGE(ITK REQUIRED) INCLUDE(${ITK_USE_FILE})

ADD_EXECUTABLE(MembershipSample MembershipSample.cxx) TARGET_LINK_LIBRARIES(MembershipSample ITKBasicFilters ITKCommon ITKIO)

</source>