Skip to content
Snippets Groups Projects
Commit 0bdf4135 authored by Christophe Palmann's avatar Christophe Palmann
Browse files

TEST:more suitable test for haa decom

parent 2553389f
No related branches found
No related tags found
No related merge requests found
...@@ -63,7 +63,10 @@ otb_add_test(NAME saTvReciprocalHAlphaImageFilter COMMAND otbPolarimetryTestDriv ...@@ -63,7 +63,10 @@ otb_add_test(NAME saTvReciprocalHAlphaImageFilter COMMAND otbPolarimetryTestDriv
--compare-image ${EPSILON_12} ${BASELINE}/saTvReciprocalHAlphaImageFilter.tif --compare-image ${EPSILON_12} ${BASELINE}/saTvReciprocalHAlphaImageFilter.tif
${TEMP}/saTvReciprocalHAlphaImageFilter.tif ${TEMP}/saTvReciprocalHAlphaImageFilter.tif
otbReciprocalHAlphaImageFilter otbReciprocalHAlphaImageFilter
${BASELINE}/saTvSinclairImageFilter_SinclairToReciprocalCoherency.tif ${INPUTDATA}/RSAT_imagery_HH.tif
${INPUTDATA}/RSAT_imagery_HV.tif
${INPUTDATA}/RSAT_imagery_VV.tif
5
${TEMP}/saTvReciprocalHAlphaImageFilter.tif ${TEMP}/saTvReciprocalHAlphaImageFilter.tif
) )
......
...@@ -24,35 +24,80 @@ ...@@ -24,35 +24,80 @@
#include "otbImageFileReader.h" #include "otbImageFileReader.h"
#include "otbImageFileWriter.h" #include "otbImageFileWriter.h"
#include "otbReciprocalHAlphaImageFilter.h" #include "otbReciprocalHAlphaImageFilter.h"
#include "itkMeanImageFilter.h"
#include "otbPerBandVectorImageFilter.h"
#include "otbSinclairReciprocalImageFilter.h"
#include "otbSinclairToReciprocalCoherencyMatrixFunctor.h"
int otbReciprocalHAlphaImageFilter(int itkNotUsed(argc), char * argv[]) int otbReciprocalHAlphaImageFilter(int itkNotUsed(argc), char * argv[])
{ {
const char * inputFilename = argv[1]; const char * inputFilenameHH = argv[1];
const char * outputFilename = argv[2]; const char * inputFilenameHV = argv[2];
const char * inputFilenameVV = argv[3];
typedef double PixelType; int size = atoi(argv[4]);
typedef std::complex<PixelType> InputPixelType; const char * outputFilename = argv[5];
const unsigned int Dimension = 2;
typedef otb::VectorImage<InputPixelType, Dimension> ImageType; typedef std::complex<double> ComplexPixelType;
typedef otb::VectorImage<PixelType, Dimension> RealImageType; const unsigned int Dimension = 2;
typedef otb::ReciprocalHAlphaImageFilter<ImageType, RealImageType> FilterType;
typedef otb::ImageFileReader<ImageType> ReaderType;
typedef otb::ImageFileWriter<RealImageType> WriterType;
ReaderType::Pointer reader = ReaderType::New(); typedef otb::Image<ComplexPixelType, Dimension> ComplexImageType;
typedef otb::VectorImage<ComplexPixelType, Dimension> ComplexVectorImageType;
typedef otb::VectorImage<double, Dimension> RealVectorImageType;
typedef otb::ImageFileReader<ComplexImageType> ReaderType;
typedef otb::ImageFileWriter<RealVectorImageType> WriterType;
typedef otb::SinclairReciprocalImageFilter<ComplexImageType, ComplexImageType, ComplexImageType, ComplexVectorImageType,
otb::Functor::SinclairToReciprocalCovarianceMatrixFunctor<ComplexImageType::PixelType,
ComplexImageType::PixelType,
ComplexImageType::PixelType,
ComplexVectorImageType::PixelType> > SinclaireToC3FilterType;
typedef itk::MeanImageFilter<ComplexImageType, ComplexImageType> MeanFilterType;
typedef otb::PerBandVectorImageFilter<ComplexVectorImageType, ComplexVectorImageType, MeanFilterType> PerBandMeanFilterType;
typedef otb::ReciprocalHAlphaImageFilter<ComplexVectorImageType, RealVectorImageType> HAlphaFilterType;
ReaderType::Pointer readerHH = ReaderType::New();
ReaderType::Pointer readerHV = ReaderType::New();
ReaderType::Pointer readerVV = ReaderType::New();
WriterType::Pointer writer = WriterType::New(); WriterType::Pointer writer = WriterType::New();
reader->SetFileName(inputFilename); SinclaireToC3FilterType::Pointer sinclairtoc3 = SinclaireToC3FilterType::New();
PerBandMeanFilterType::Pointer perBand = PerBandMeanFilterType::New();
FilterType::Pointer filter = FilterType::New(); HAlphaFilterType::Pointer haafilter = HAlphaFilterType::New();
filter->SetInput(reader->GetOutput());
MeanFilterType::InputSizeType radius;
radius.Fill( size );
perBand->GetFilter()->SetRadius(radius);
readerHH->SetFileName(inputFilenameHH);
readerHV->SetFileName(inputFilenameHV);
readerVV->SetFileName(inputFilenameVV);
sinclairtoc3->SetInputHH(readerHH->GetOutput());
sinclairtoc3->SetInputHV_VH(readerHV->GetOutput());
sinclairtoc3->SetInputVV(readerVV->GetOutput());
perBand->SetInput(sinclairtoc3->GetOutput());
haafilter->SetInput(perBand->GetOutput());
writer->SetFileName(outputFilename); writer->SetFileName(outputFilename);
writer->SetInput(filter->GetOutput()); writer->SetInput(haafilter->GetOutput());
writer->Update(); writer->Update();
return EXIT_SUCCESS; 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