Skip to content
Snippets Groups Projects
Commit c0d6b3ea authored by Julien Michel's avatar Julien Michel
Browse files

TEST: Adding test for watershed composite filter

parent 28066062
No related branches found
No related tags found
No related merge requests found
......@@ -186,6 +186,17 @@ ADD_TEST(obTuMeanShiftSegmentationFilter ${OBIA_TESTS1}
0.1
)
ADD_TEST(obTuWatershedSegmentationFilter ${OBIA_TESTS1}
--compare-image ${NOTOL}
${BASELINE}/obTuWatershedSegmentationFilterLabelImage.tif
${TEMP}/obTuWatershedSegmentationFilterLabelImage.tif
otbWatershedSegmentationFilter
${EXAMPLEDATA}/ROI_QB_PAN_1.tif
${TEMP}/obTuWatershedSegmentationFilterLabelImage.tif
0.01
0.2
)
ADD_TEST(obTuLabelImageToLabelMapWithAdjacencyFilterNew ${OBIA_TESTS3}
otbLabelImageToLabelMapWithAdjacencyFilterNew)
......@@ -343,6 +354,7 @@ otbStreamingConnectedComponentOBIATest.cxx
otbMeanShiftStreamingConnectedComponentOBIATest.cxx
otbMeanShiftConnectedComponentSegmentationFilterTest.cxx
otbMeanShiftSegmentationFilter.cxx
otbWatershedSegmentationFilter.cxx
otbHooverMatrixFilterNew.cxx
otbHooverMatrixFilter.cxx
otbHooverInstanceFilterNew.cxx
......
......@@ -57,6 +57,7 @@ REGISTER_TEST(otbStreamingConnectedComponentSegmentationOBIAToVectorDataFilter);
REGISTER_TEST(otbMeanShiftStreamingConnectedComponentSegmentationOBIAToVectorDataFilter);
REGISTER_TEST(otbMeanShiftConnectedComponentSegmentationFilter);
REGISTER_TEST(otbMeanShiftSegmentationFilter);
REGISTER_TEST(otbWatershedSegmentationFilter);
REGISTER_TEST(otbHooverMatrixFilterNew);
REGISTER_TEST(otbHooverMatrixFilter);
REGISTER_TEST(otbHooverInstanceFilterNew);
......
/*=========================================================================
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.
=========================================================================*/
#include "otbWatershedSegmentationFilter.h"
#include "itkMacro.h"
#include "otbImage.h"
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "itkGradientMagnitudeImageFilter.h"
int otbWatershedSegmentationFilter(int argc, char * argv[])
{
if (argc != 5)
{
std::cerr << "Usage: " << argv[0] <<
" inputFileName outputLabelFileName threshold level"
<< std::endl;
return EXIT_FAILURE;
}
const char * inputFileName = argv[1];
const char * outputLabelFileName = argv[2];
const double threshold = atof(argv[3]);
const double level = atof(argv[4]);
/* maxit - threshold */
const unsigned int Dimension = 2;
typedef float PixelType;
typedef otb::Image<PixelType,Dimension> InputImageType;
typedef otb::Image<unsigned int, Dimension> LabelImageType;
typedef otb::ImageFileReader<InputImageType> ReaderType;
typedef otb::ImageFileWriter<LabelImageType> LabelWriterType;
typedef itk::GradientMagnitudeImageFilter<InputImageType,InputImageType> GradientMagnitudeFilterType;
typedef otb::WatershedSegmentationFilter<InputImageType, LabelImageType> FilterType;
// Instantiating object
GradientMagnitudeFilterType::Pointer gradientMagnitudeFilter = GradientMagnitudeFilterType::New();
FilterType::Pointer filter = FilterType::New();
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(inputFileName);
gradientMagnitudeFilter->SetInput(reader->GetOutput());
// Set filter parameters
filter->SetThreshold(threshold);
filter->SetLevel(level);
filter->SetInput(gradientMagnitudeFilter->GetOutput());
LabelWriterType::Pointer writerLabel = LabelWriterType::New();
writerLabel->SetFileName(outputLabelFileName);
writerLabel->SetInput(filter->GetOutput());
writerLabel->Update();
return EXIT_SUCCESS;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment