6 #include <itkImageFileReader.h>
7 #include <itkImageFileWriter.h>
8 #include <itkHausdorffDistanceImageFilter.h>
10 // -------------------------------------------------------------------------
11 const unsigned int Dim = 3;
12 typedef unsigned short TPixel;
13 typedef float TScalar;
14 typedef itk::Image< TPixel, Dim > TImage;
15 typedef itk::ImageFileReader< TImage > TImageReader;
16 typedef itk::HausdorffDistanceImageFilter< TImage, TImage > TDistance;
18 // -------------------------------------------------------------------------
19 int main( int argc, char* argv[] )
24 << "Usage: " << argv[ 0 ]
25 << " first_image second_image"
30 std::string first_image_fn = argv[ 1 ];
31 std::string second_image_fn = argv[ 2 ];
34 TImageReader::Pointer first_image_reader = TImageReader::New( );
35 TImageReader::Pointer second_image_reader = TImageReader::New( );
36 first_image_reader->SetFileName( first_image_fn );
37 second_image_reader->SetFileName( second_image_fn );
40 first_image_reader->Update( );
41 second_image_reader->Update( );
43 catch( itk::ExceptionObject& err )
45 std::cerr << "Error caught: " << err << std::endl;
50 TDistance::Pointer distance = TDistance::New( );
51 distance->SetInput1( first_image_reader->GetOutput( ) );
52 distance->SetInput2( second_image_reader->GetOutput( ) );
54 std::cout << "Hausdorff distance = " << distance->GetHausdorffDistance( ) << std::endl;