Skip to content
Snippets Groups Projects
Commit cb8e166d authored by Antoine Regimbeau's avatar Antoine Regimbeau
Browse files

TEST : adding new test for CLAHE

parent 512485cc
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,8 @@ otbComputeHistoFilterNew.cxx
otbApplyGainFilterNew.cxx
otbComputeGainLutFilterNew.cxx
otbCLHistogramEqualizationFilterNew.cxx
otbCLHistogramEqualizationFilter.cxx
otbHelperCLAHE.cxx
)
add_executable(otbContrastTestDriver ${OTBContrastTests})
......
/*
* Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "otbImage.h"
#include "otbCLHistogramEqualizationFilter.h"
int otbCLHistogramEqualizationFilter(int itkNotUsed(argc), char * argv [])
{
typedef int InputPixelType;
const unsigned int Dimension = 2;
typedef otb::Image< InputPixelType , Dimension > InputImageType;
typedef otb::CLHistogramEqualizationFilter< InputImageType , InputImageType >
FilterType;
typedef otb::ImageFileReader< InputImageType > ReaderType;
typedef otb::ImageFileWriter< InputImageType > WriterType;
ReaderType::Pointer reader ( ReaderType::New() );
WriterType::Pointer writer ( WriterType::New() );
reader->SetFileName( "/home/antoine/dev/my_data/smallinputmono.tif" );
writer->SetFileName( "/home/antoine/dev/my_data/smallnewtest.tif" );
reader->UpdateOutputInformation();
FilterType::Pointer histoEqualize ( FilterType::New() );
histoEqualize->SetInput( reader->GetOutput() );
histoEqualize->SetMin(0);
histoEqualize->SetMax(255);
histoEqualize->SetNbBin(256);
InputImageType::SizeType size;
size[0] = reader->GetOutput()->GetLargestPossibleRegion().GetSize()[0];
size[1] = reader->GetOutput()->GetLargestPossibleRegion().GetSize()[1];
histoEqualize->SetThumbSize(size);
// histoEqualize->SetThreshold(100);
writer->SetInput(histoEqualize->GetOutput());
writer->Update();
return EXIT_SUCCESS;
}
\ No newline at end of file
......@@ -26,5 +26,6 @@ void RegisterTests()
REGISTER_TEST(otbComputeGainLutFilterNew);
REGISTER_TEST(otbApplyGainFilterNew);
REGISTER_TEST(otbCLHistogramEqualizationFilterNew);
// REGISTER_TEST(otbHistogramEqualizationFilterValidation);
REGISTER_TEST(otbCLHistogramEqualizationFilter);
REGISTER_TEST(otbHelperCLAHE);
}
/*
* Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES)
*
* This file is part of Orfeo Toolbox
*
* https://www.orfeo-toolbox.org/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "otbImageFileReader.h"
#include "otbImageFileWriter.h"
#include "otbImage.h"
#include "otbVectorImage.h"
#include "itkImageRegionIterator.h"
#include "otbCLHistogramEqualizationFilter.h"
int otbHelperCLAHE(int itkNotUsed(argc), char * argv [])
{
typedef int InputPixelType;
const unsigned int Dimension = 2;
typedef otb::Image< InputPixelType , Dimension > InputImageType;
typedef otb::ImageFileReader< InputImageType > ReaderType;
typedef otb::ImageFileWriter< InputImageType > WriterType;
ReaderType::Pointer reader ( ReaderType::New() );
WriterType::Pointer writer ( WriterType::New() );
reader->SetFileName( "/home/antoine/dev/my_data/smallinputmono.tif" );
writer->SetFileName( "/home/antoine/dev/my_data/smallnewtest.tif" );
reader->UpdateOutputInformation();
typedef otb::VectorImage< int , 2 > HistogramType;
typedef itk::StreamingImageFilter< HistogramType , HistogramType >
StreamingImageFilter;
typedef otb::InPlacePassFilter < InputImageType > BufferFilter;
typedef otb::ComputeHistoFilter< InputImageType , HistogramType >
HistoFilter;
typedef otb::ComputeGainLutFilter< HistogramType , HistogramType >
GainLutFilter;
typedef otb::ApplyGainFilter< InputImageType , HistogramType , InputImageType >
ApplyGainFilter;
HistoFilter::Pointer histoFilter( HistoFilter::New() );
GainLutFilter::Pointer lutFilter( GainLutFilter::New() );
ApplyGainFilter::Pointer applyFilter( ApplyGainFilter::New() );
BufferFilter::Pointer buffer( BufferFilter::New() );
StreamingImageFilter::Pointer streamFilter( StreamingImageFilter::New() );
InputImageType::SizeType size;
size[0] = reader->GetOutput()->GetLargestPossibleRegion().GetSize()[0];
size[1] = reader->GetOutput()->GetLargestPossibleRegion().GetSize()[1];
// histoEqualize->SetThreshold(100);
histoFilter->SetInput( reader->GetOutput() );
buffer->SetInput( reader->GetOutput() );
lutFilter->SetInput( histoFilter->GetHistoOutput() );
streamFilter->SetInput( lutFilter->GetOutput() );
applyFilter->SetInputLut( streamFilter->GetOutput() );
applyFilter->SetInputImage( buffer->GetOutput() );
histoFilter->SetMin(0);
histoFilter->SetMax(255);
lutFilter->SetMin(0);
lutFilter->SetMax(255);
applyFilter->SetMin(0);
applyFilter->SetMax(255);
histoFilter->SetThumbSize(size);
applyFilter->SetThumbSize(size);
lutFilter->SetNbPixel(size[0]*size[1]);
writer->SetInput(applyFilter->GetOutput());
writer->Update();
return EXIT_SUCCESS;
}
\ No newline at end of file
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