From 80c774e05012685077416763f7708ee4804e09c7 Mon Sep 17 00:00:00 2001 From: Jordi Inglada <jordi.inglada@orfeo-toolbox.org> Date: Tue, 13 Jan 2009 10:29:08 +0100 Subject: [PATCH] DOC: added file for mean shift example --- .../MeanShiftVectorImageFilterExample.cxx | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 Examples/BasicFilters/MeanShiftVectorImageFilterExample.cxx diff --git a/Examples/BasicFilters/MeanShiftVectorImageFilterExample.cxx b/Examples/BasicFilters/MeanShiftVectorImageFilterExample.cxx new file mode 100644 index 0000000000..a040f42775 --- /dev/null +++ b/Examples/BasicFilters/MeanShiftVectorImageFilterExample.cxx @@ -0,0 +1,101 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.txt for details. + + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(_MSC_VER) +#pragma warning ( disable : 4786 ) +#endif + +#ifdef __BORLANDC__ +#define ITK_LEAN_AND_MEAN +#endif + +// Software Guide : BeginCommandLineArgs +// INPUTS: {} +// OUTPUTS: {}, {} +// Software Guide : EndCommandLineArgs + +// Software Guide : BeginLatex +// + +#include "itkExceptionObject.h" +#include "otbVectorImage.h" +#include "otbImageFileReader.h" +#include "otbStreamingImageFileWriter.h" +#include "otbMeanShiftVectorImageFilter.h" + +int main(int argc, char * argv[]) +{ + if(argc != 10) + { + std::cerr<<"Usage: "<<argv[0]<<" infname filteredfname clusteredfname labeledclusteredfname clusterboundariesfname spatialRadius rangeRadius minregionsize scale"<<std::endl; + return EXIT_FAILURE; + } + + const char * infname = argv[1]; + const char * filteredfname = argv[2]; + const char * clusteredfname = argv[3]; + const char * labeledclusteredfname = argv[4]; + const char * clusterboundariesfname = argv[5]; + const unsigned int spatialRadius = atoi(argv[6]); + const double rangeRadius = atof(argv[7]); + const unsigned int minRegionSize = atoi(argv[8]); + const double scale = atoi(argv[9]); + + const unsigned int Dimension = 2; + typedef float PixelType; + typedef otb::VectorImage<PixelType,Dimension> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + typedef otb::StreamingImageFileWriter<ImageType> WriterType; + typedef otb::MeanShiftVectorImageFilter<ImageType,ImageType> FilterType; + typedef FilterType::LabeledOutputType LabeledImageType; + typedef otb::StreamingImageFileWriter<LabeledImageType> LabeledWriterType; + + // Instantiating object + FilterType::Pointer filter = FilterType::New(); + ReaderType::Pointer reader = ReaderType::New(); + WriterType::Pointer writer1 = WriterType::New(); + WriterType::Pointer writer2 = WriterType::New(); + LabeledWriterType::Pointer writer3 = LabeledWriterType::New(); + LabeledWriterType::Pointer writer4 = LabeledWriterType::New(); + + + reader->SetFileName(infname); + writer1->SetFileName(filteredfname); + writer2->SetFileName(clusteredfname); + writer3->SetFileName(labeledclusteredfname); + writer4->SetFileName(clusterboundariesfname); + + filter->SetSpatialRadius(spatialRadius); + filter->SetRangeRadius(rangeRadius); + filter->SetMinimumRegionSize(minRegionSize); + filter->SetScale(scale); + + filter->SetInput(reader->GetOutput()); + writer1->SetInput(filter->GetOutput()); + writer2->SetInput(filter->GetClusteredOutput()); + writer3->SetInput(filter->GetLabeledClusteredOutput()); + writer4->SetInput(filter->GetClusterBoundariesOutput()); + + + writer1->Update(); + writer2->Update(); + writer3->Update(); + writer4->Update(); + + return EXIT_SUCCESS; +} -- GitLab