ITK/Examples/Statistics/MembershipSample: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
(Wrong signature for main.)
mNo edit summary
Line 1: Line 1:
A MembershipSample is a list ListSample with an additional attribute indicating which class the sample belongs to. This is the output type in many of the clustering and segmentation algorithms in the Statistics framework.
==MembershipSample.cxx==
==MembershipSample.cxx==
<source lang="cpp">
<source lang="cpp">

Revision as of 17:50, 20 November 2010

A MembershipSample is a list ListSample with an additional attribute indicating which class the sample belongs to. This is the output type in many of the clustering and segmentation algorithms in the Statistics framework.

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>