ITK/Examples/Statistics/ImageToListSampleAdaptor
From KitwarePublic
< ITK | Examples
Jump to navigationJump to search
Revision as of 17:49, 20 November 2010 by Daviddoria (talk | contribs)
Convert the pixels in an image to a list of measurements in a ListSample.
ImageToListSampleAdaptor.cxx
#include "itkImageToListSampleAdaptor.h"
#include "itkImage.h"
#include "itkRandomImageSource.h"
#include "itkScalarToArrayCastImageFilter.h"
int main(int, char *[])
{
typedef itk::Image<float,2> FloatImage2DType;
itk::RandomImageSource<FloatImage2DType>::Pointer random;
random = itk::RandomImageSource<FloatImage2DType>::New();
random->SetMin( 0.0 );
random->SetMax( 1000.0 );
typedef FloatImage2DType::SpacingValueType SpacingValueType;
typedef FloatImage2DType::SizeValueType SizeValueType;
typedef FloatImage2DType::PointValueType PointValueType;
SizeValueType size[2] = {20, 20};
random->SetSize( size );
SpacingValueType spacing[2] = {0.7, 2.1};
random->SetSpacing( spacing );
PointValueType origin[2] = {15, 400};
random->SetOrigin( origin );
typedef itk::FixedArray< float, 1 > MeasurementVectorType;
typedef itk::Image< MeasurementVectorType, 2 > ArrayImageType;
typedef itk::ScalarToArrayCastImageFilter< FloatImage2DType, ArrayImageType >
CasterType;
CasterType::Pointer caster = CasterType::New();
caster->SetInput( random->GetOutput() );
caster->Update();
typedef itk::Statistics::ImageToListSampleAdaptor< ArrayImageType > SampleType;
SampleType::Pointer sample = SampleType::New();
sample->SetImage( caster->GetOutput() );
SampleType::Iterator iter = sample->Begin() ;
while( iter != sample->End() )
{
std::cout << iter.GetMeasurementVector() << std::endl ;
++iter;
}
return EXIT_SUCCESS;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
PROJECT(ImageToListSampleAdaptor)
FIND_PACKAGE(ITK REQUIRED)
INCLUDE(${ITK_USE_FILE})
ADD_EXECUTABLE(ImageToListSampleAdaptor ImageToListSampleAdaptor.cxx)
TARGET_LINK_LIBRARIES(ImageToListSampleAdaptor
ITKBasicFilters ITKCommon ITKIO)