diff --git a/Code/DisparityMap/otbBSplinesInterpolateTransformDeformationFieldGenerator.txx b/Code/DisparityMap/otbBSplinesInterpolateTransformDeformationFieldGenerator.txx index ccc5fb7c6b046a461910430a5a7af9eedc7edcd1..de8ac1bcc5af6ab255cee2846bff3b3ab0ec72d8 100644 --- a/Code/DisparityMap/otbBSplinesInterpolateTransformDeformationFieldGenerator.txx +++ b/Code/DisparityMap/otbBSplinesInterpolateTransformDeformationFieldGenerator.txx @@ -35,7 +35,7 @@ BSplinesInterpolateTransformDeformationFieldGenerator<TPointSet, TDeformationFie { m_SplineOrder = 3; m_NumberOfControlPoints = 4; - m_NumberOfLevels = 10; + m_NumberOfLevels = 6; } template <class TPointSet, class TDeformationField> @@ -67,7 +67,7 @@ BSplinesInterpolateTransformDeformationFieldGenerator<TPointSet, TDeformationFie // Initialization of the splines interpolator typename SPlineInterpolatorListType::Pointer splineIntList = SPlineInterpolatorListType::New(); -std::cout<<"BIG FOOOOOOOOOOOOOOOOOOOOOOOOOOOOR"<<std::endl; + for (unsigned int paramIndex = 0; paramIndex < this->GetTransform()->GetNumberOfParameters(); ++paramIndex) { // Create a new interpolator @@ -104,7 +104,7 @@ std::cout<<"BIG FOOOOOOOOOOOOOOOOOOOOOOOOOOOOR"<<std::endl; } ++pointDataCounter; } -std::cout<<"CHELOU THINGSSSSSSSSSSSSSSSSSSSSs"<<std::endl; + // Set the interpolator parameters splineIntList->Back()->SetInput(tmpPointSet); splineIntList->Back()->SetSplineOrder(m_SplineOrder); @@ -125,8 +125,6 @@ std::cout<<"CHELOU THINGSSSSSSSSSSSSSSSSSSSSs"<<std::endl; typedef itk::ImageRegionIteratorWithIndex<DeformationFieldType> IteratorType; IteratorType outIt(outputPtr, outputPtr->GetRequestedRegion()); - std::cout<<"MAIN LOOOOOOOOOOOOOOOOOOOOOOOOOOOP"<<std::endl; - // main loop for (outIt.GoToBegin(); !outIt.IsAtEnd(); ++outIt) { @@ -155,10 +153,8 @@ std::cout<<"CHELOU THINGSSSSSSSSSSSSSSSSSSSSs"<<std::endl; this->GetTransform()->SetParameters(params); PointType sourcePoint, targetPoint; outputPtr->TransformIndexToPhysicalPoint(index, sourcePoint); - std::cout<<sourcePoint<<" "<<p<<" "<<index<<" "<<V<<std::endl; targetPoint = this->GetTransform()->TransformPoint(sourcePoint); - std::cout<<targetPoint<<std::endl; // And the deformation PixelType pixel; pixel.SetSize(2); diff --git a/Code/Learning/otbShiftScaleSampleListFilter.txx b/Code/Learning/otbShiftScaleSampleListFilter.txx index c1bfe81463f06dc4c1c1ea9711bde864a2bdf52e..44bddb0c74913ace8ce44c75c07a79b6def05d85 100644 --- a/Code/Learning/otbShiftScaleSampleListFilter.txx +++ b/Code/Learning/otbShiftScaleSampleListFilter.txx @@ -41,6 +41,21 @@ ShiftScaleSampleListFilter<TInputSampleList,TOutputSampleList> InputSampleListConstPointer inputSampleListPtr = inputPtr->Get(); OutputSampleListPointer outputSampleListPtr = const_cast<OutputSampleListType *>(outputPtr->Get()); + // Check if the inputSampleList is not empty + if(inputSampleListPtr->Size() == 0) + itkExceptionMacro(<< "Input Sample List is empty"); + + // Check if the size of the scale and the shift measurement vectors + // are the same than the input vector + if(inputSampleListPtr->GetMeasurementVectorSize() != m_Scales.Size() + || inputSampleListPtr->GetMeasurementVectorSize() != m_Shifts.Size()) + itkExceptionMacro(<< "Inconsistent measurement vector size : Input Sample List size " + << inputSampleListPtr->GetMeasurementVectorSize() + << " Scale measurement vector size " + <<m_Scales.Size() + <<" Shift measurement vector size " + <<m_Shifts.Size()); + // Compute the 1/(sigma) vector InputMeasurementVectorType invertedScales = m_Scales; for(unsigned int idx = 0;idx < invertedScales.Size();++idx) diff --git a/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.h b/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.h index 31f333c573f2d78cfeedf32fe671287ca1c6aa98..e0c82adcd253c79d3444f299b2774ff27b2bce48 100644 --- a/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.h +++ b/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.h @@ -107,9 +107,9 @@ public: template <class TInputImage> void AddImage(TInputImage * image) { - typedef Image<ValueType, 2> ImageType; typedef TInputImage InputImageType; - + typedef Image<ValueType, 2> ImageType; + //Mono-Channel Factories typedef LocalHistogramIFFactory<ImageType, CoordRepType, TPrecision> LocalHistogramIFFactoryType; @@ -140,26 +140,30 @@ public: MCFourierMellinDescriptorsIFFactoryType MCFourierMellinDescriptorsIFFactory; MCHaralickTexturesIFFactoryType MCHaralickTexturesIFFactory; - //MCLocalHistogramIFFactory.Create(image, - // m_LocalHistogramParam, - // m_MetaImageFunction, - // &m_DataObjectContainer); + + MCRadiometricMomentsIFFactory.Create(image, + this->GetRadiometricMomentsIFParameters(), + m_MetaImageFunction, + &m_DataObjectContainer); MCFlusserMomentsIFFactory.Create(image, this->GetFlusserMomentsIFParameters(), m_MetaImageFunction, &m_DataObjectContainer); - MCRadiometricMomentsIFFactory.Create(image, - m_RadiometricMomentsParam, - m_MetaImageFunction, - &m_DataObjectContainer); + MCFourierMellinDescriptorsIFFactory.Create(image, - m_FourierMellinDescriptorsParam, + this->GetFourierMellinDescriptorsIFParameters(), m_MetaImageFunction, &m_DataObjectContainer); - MCHaralickTexturesIFFactory.Create(image, - m_HaralickTexturesParam, - m_MetaImageFunction, - &m_DataObjectContainer); + + //MCLocalHistogramIFFactory.Create(image, + // m_LocalHistogramParam, + // m_MetaImageFunction, + // &m_DataObjectContainer); + + //MCHaralickTexturesIFFactory.Create(image, + // m_HaralickTexturesParam, + // m_MetaImageFunction, + // &m_DataObjectContainer); } protected: diff --git a/Examples/Filtering/DanielssonDistanceMapImageFilter.cxx b/Examples/Filtering/DanielssonDistanceMapImageFilter.cxx index 641c1f13a7839d7bedebf6c8a8fdf4332c3ce5f9..0e1b0daa13adb143be282c74d77e6d4aa926da29 100644 --- a/Examples/Filtering/DanielssonDistanceMapImageFilter.cxx +++ b/Examples/Filtering/DanielssonDistanceMapImageFilter.cxx @@ -55,12 +55,11 @@ int main(int argc, char * argv[]) { - if (argc < 5) + if (argc < 4) { std::cerr << "Usage: " << argv[0]; std::cerr << " inputImageFile outputDistanceMapImageFile "; std::cerr << " outputVoronoiMapImageFilter "; - std::cerr << " outputVectorMapImageFilter "; std::cerr << std::endl; return EXIT_FAILURE; } diff --git a/Testing/Code/DisparityMap/otbTranslationDeformationFieldEstimation.cxx b/Testing/Code/DisparityMap/otbTranslationDeformationFieldEstimation.cxx index c1e470cd18c1e154c14963380f66780e1e9b7b94..28f34e3c7e71290abc1be920c0d450160aac51bf 100644 --- a/Testing/Code/DisparityMap/otbTranslationDeformationFieldEstimation.cxx +++ b/Testing/Code/DisparityMap/otbTranslationDeformationFieldEstimation.cxx @@ -194,11 +194,6 @@ int otbTranslationDeformationFieldEstimation(int argc, char* argv[]) win.Fill(winSize); explo.Fill(exploSize); - fixedReader->GenerateOutputInformation(); - movingReader->GenerateOutputInformation(); - std::cout<<fixedReader->GetOutput()->GetLargestPossibleRegion().GetSize()<<std::endl; - std::cout<<movingReader->GetOutput()->GetLargestPossibleRegion().GetSize()<<std::endl; - dmestimator->SetFixedImage(fixedReader->GetOutput()); dmestimator->SetMovingImage(movingReader->GetOutput()); dmestimator->SetPointSet(nodes); @@ -238,7 +233,7 @@ int otbTranslationDeformationFieldEstimation(int argc, char* argv[]) writer->SetFileName(oss.str().c_str()); writer->SetInput(rescaler->GetOutput()); writer->Update(); - + //3.b NNearest points deformation field linear interpolate generator writer = WriterType::New(); dfwriter = DeformationFieldWriterType::New(); @@ -283,31 +278,25 @@ int otbTranslationDeformationFieldEstimation(int argc, char* argv[]) generator3->SetOutputSpacing(fixedReader->GetOutput()->GetSpacing()); generator3->SetOutputSize(fixedReader->GetOutput()->GetLargestPossibleRegion().GetSize()); generator3->SetMetricThreshold(metricThreshold); - - std::cout<<"BSPLINE GOd"<<std::endl; - generator3->Update(); - std::cout<<"BSPLINE DONE"<<std::endl; warper->SetInput(movingReader->GetOutput()); warper->SetDeformationField(generator3->GetOutput()); rescaler->SetInput(warper->GetOutput()); rescaler->SetOutputMaximum(255); rescaler->SetOutputMinimum(0); - std::cout<<"_bs_df"<<std::endl; + oss.str(""); oss << outputFileNamePrefix << "_bs_df.hdr"; dfwriter->SetFileName(oss.str().c_str()); dfwriter->SetInput(generator3->GetOutput()); dfwriter->Update(); - std::cout<<"_bs_df done"<<std::endl; - std::cout<<"_bs_oi"<<std::endl; oss.str(""); oss << outputFileNamePrefix << "_bs_oi.tif"; writer->SetFileName(oss.str().c_str()); writer->SetInput(rescaler->GetOutput()); writer->Update(); -std::cout<<"_bs_oi done"<<std::endl; + //3.d Nearest transform deformation field generator writer = WriterType::New(); dfwriter = DeformationFieldWriterType::New(); @@ -327,20 +316,19 @@ std::cout<<"_bs_oi done"<<std::endl; rescaler->SetInput(warper->GetOutput()); rescaler->SetOutputMaximum(255); rescaler->SetOutputMinimum(0); -std::cout<<"_nt_df"<<std::endl; + oss.str(""); oss << outputFileNamePrefix << "_nt_df.hdr"; dfwriter->SetFileName(oss.str().c_str()); dfwriter->SetInput(generator4->GetOutput()); dfwriter->Update(); -std::cout<<"_nt_df done"<<std::endl; -std::cout<<"_nt_oi"<<std::endl; + oss.str(""); oss << outputFileNamePrefix << "_nt_oi.tif"; writer->SetFileName(oss.str().c_str()); writer->SetInput(rescaler->GetOutput()); writer->Update(); -std::cout<<"_nt_oi done"<<std::endl; + //3.e NNearest transforms deformation field linear interpolation generator writer = WriterType::New(); dfwriter = DeformationFieldWriterType::New(); @@ -362,21 +350,17 @@ std::cout<<"_nt_oi done"<<std::endl; rescaler->SetOutputMaximum(255); rescaler->SetOutputMinimum(0); - std::cout<<"_nnt_df"<<std::endl; oss.str(""); oss << outputFileNamePrefix << "_nnt_df.hdr"; dfwriter->SetFileName(oss.str().c_str()); dfwriter->SetInput(generator5->GetOutput()); dfwriter->Update(); -std::cout<<"_nnt_df done"<<std::endl; -std::cout<<"_nnt_oi"<<std::endl; oss.str(""); oss << outputFileNamePrefix << "_nnt_oi.tif"; writer->SetFileName(oss.str().c_str()); writer->SetInput(rescaler->GetOutput()); writer->Update(); -std::cout<<"_nnt_oi done"<<std::endl; //3.e Transforms deformation field spline interpolation generator writer = WriterType::New(); @@ -389,7 +373,6 @@ std::cout<<"_nnt_oi done"<<std::endl; generator6->SetOutputOrigin(fixedReader->GetOutput()->GetOrigin()); generator6->SetOutputSpacing(fixedReader->GetOutput()->GetSpacing()); generator6->SetOutputSize(fixedReader->GetOutput()->GetLargestPossibleRegion().GetSize()); - std::cout<<fixedReader->GetOutput()->GetLargestPossibleRegion().GetSize()<<std::endl; generator6->SetMetricThreshold(metricThreshold); generator6->SetTransform(transform); generator6->SetSplineOrder(4); @@ -400,20 +383,18 @@ std::cout<<"_nnt_oi done"<<std::endl; rescaler->SetInput(warper->GetOutput()); rescaler->SetOutputMaximum(255); rescaler->SetOutputMinimum(0); -std::cout<<"_bst_df"<<std::endl; + oss.str(""); oss << outputFileNamePrefix << "_bst_df.hdr"; dfwriter->SetFileName(oss.str().c_str()); dfwriter->SetInput(generator6->GetOutput()); dfwriter->Update(); -std::cout<<"_bst_df done"<<std::endl; -std::cout<<"_bst_oi"<<std::endl; oss.str(""); oss << outputFileNamePrefix << "_bst_oi.tif"; writer->SetFileName(oss.str().c_str()); writer->SetInput(rescaler->GetOutput()); writer->Update(); -std::cout<<"_bst_oi done"<<std::endl; + return EXIT_SUCCESS; } diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt index 27591828d0c22a2a4831429d09da9d883328d65d..8ccf9ab209c27f21d2436cb8ffb61334ecb651ee 100644 --- a/Testing/Code/IO/CMakeLists.txt +++ b/Testing/Code/IO/CMakeLists.txt @@ -1139,16 +1139,37 @@ ENDIF(OTB_DATA_USE_LARGEINPUT) ADD_TEST(ioTuVectorImageComplexNew ${IO_TESTS9} otbVectorImageComplexNew) -ADD_TEST(ioTuVectorImageComplexFloatTest ${IO_TESTS9} +ADD_TEST(ioTvVectorImageComplexFloatTest ${IO_TESTS9} otbVectorImageComplexFloatTest ${INPUTDATA}/multibandComplexFloat.hdr ) -ADD_TEST(ioTuVectorImageComplexDoubleTest ${IO_TESTS9} +ADD_TEST(ioTvVectorImageComplexDoubleTest ${IO_TESTS9} otbVectorImageComplexDoubleTest ${INPUTDATA}/multibandComplexDouble.hdr ) +ADD_TEST(ioTvImageComplexFloatTest ${IO_TESTS9} + otbImageComplexFloatTest + ${INPUTDATA}/multibandComplexFloat.hdr +) + +ADD_TEST(ioTvImageComplexDoubleTest ${IO_TESTS9} + otbImageComplexDoubleTest + ${INPUTDATA}/multibandComplexDouble.hdr +) + +ADD_TEST(ioTvVectorImageComplexIntoRealFloatTest ${IO_TESTS9} + otbVectorImageComplexIntoRealFloatTest + ${INPUTDATA}/multibandComplexFloat.hdr +) + +ADD_TEST(ioTvVectorImageComplexIntoRealDoubleTest ${IO_TESTS9} + otbVectorImageComplexIntoRealDoubleTest + ${INPUTDATA}/multibandComplexDouble.hdr +) + + # --- otb::VectorImageReadWriteTest --- ADD_TEST(ioTvVectorImageFileReaderWriterTest ${IO_TESTS9} --compare-image ${EPSILON_9} @@ -2758,6 +2779,7 @@ otbVectorImageTest.cxx otbStreamingImageFilterTest.cxx otbVectorImageFileReaderWriterTest.cxx otbStreamingShortImageFileWriterTest.cxx +otbComplexImageTests.cxx ) SET(BasicIO_SRCS10 otbIOTests10.cxx diff --git a/Testing/Code/IO/otbComplexImageTests.cxx b/Testing/Code/IO/otbComplexImageTests.cxx new file mode 100644 index 0000000000000000000000000000000000000000..7bf945dd3e3b5d4649c9ad5a75eac85f7533e18f --- /dev/null +++ b/Testing/Code/IO/otbComplexImageTests.cxx @@ -0,0 +1,184 @@ +/*========================================================================= + + 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 + +#include "itkExceptionObject.h" +#include <iostream> +#include <fstream> +#include <string> + +#include "otbImage.h" +#include "otbVectorImage.h" +#include "otbImageFileReader.h" + +int otbVectorImageComplexNew(int argc, char* argv[]) +{ + typedef std::complex<float> PixelType; + typedef otb::VectorImage<PixelType, 2> ImageType; + ImageType::Pointer image = ImageType::New(); + image->Initialize(); + + return EXIT_SUCCESS; +} + + +template<class InternalType> +int otbVectorImageComplexGenericTest(int argc, char* argv[]) +{ + typedef std::complex<InternalType> PixelType; + typedef otb::VectorImage<PixelType, 2> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(argv[1]); + reader->UpdateOutputInformation(); + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << std::endl; + itk::ImageIOBase::Pointer io = reader->GetImageIO(); + std::cout << io << std::endl; + reader->Update(); + typename ImageType::IndexType index; + index[0]=0; + index[1]=0; + + typename ImageType::PixelType pixel = reader->GetOutput()->GetPixel(index); + std::cout << pixel << std::endl; + + //Test value + if ((pixel[0] != PixelType(0,1)) + || (pixel[1] != PixelType(20000, 20001))) + { + std::cout << "Found " << pixel[0] << " should be " << PixelType(0,1) << std::endl; + std::cout << "Found " << pixel[1] << " should be " << PixelType(20000,20001) << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} + +int otbVectorImageComplexFloatTest(int argc, char* argv[]) +{ + return otbVectorImageComplexGenericTest<float>(argc, argv); +} + +int otbVectorImageComplexDoubleTest(int argc, char* argv[]) +{ + return otbVectorImageComplexGenericTest<double>(argc, argv); +} + +template<class InternalType> +int otbImageComplexGenericTest(int argc, char* argv[]) +{ + typedef std::complex<InternalType> PixelType; + typedef otb::Image<PixelType, 2> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(argv[1]); + reader->UpdateOutputInformation(); + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << std::endl; + itk::ImageIOBase::Pointer io = reader->GetImageIO(); + std::cout << io << std::endl; + reader->Update(); + typename ImageType::IndexType index; + index[0]=0; + index[1]=0; + + typename ImageType::PixelType pixel = reader->GetOutput()->GetPixel(index); + std::cout << pixel << std::endl; + + //Test value + if (pixel != PixelType(0,1)) + { + std::cout << "Found " << pixel << " should be " << PixelType(0,1) << std::endl; + return EXIT_FAILURE; + } + + //Test other pixel + index[0]=10; + index[1]=10; + + pixel = reader->GetOutput()->GetPixel(index); + std::cout << pixel << std::endl; + + if (pixel != PixelType(2020,2021)) + { + std::cout << "Found " << pixel << " should be " << PixelType(2020,2021) << std::endl; + return EXIT_FAILURE; + } + + + return EXIT_SUCCESS; +} + +int otbImageComplexFloatTest(int argc, char* argv[]) +{ + return otbImageComplexGenericTest<float>(argc, argv); +} + +int otbImageComplexDoubleTest(int argc, char* argv[]) +{ + return otbImageComplexGenericTest<double>(argc, argv); +} + + +template<class InternalType> +int otbVectorImageComplexIntoRealGenericTest(int argc, char* argv[]) +{ + typedef InternalType PixelType; + typedef otb::VectorImage<PixelType, 2> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(argv[1]); + reader->UpdateOutputInformation(); + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << std::endl; + itk::ImageIOBase::Pointer io = reader->GetImageIO(); + std::cout << io << std::endl; + reader->Update(); + typename ImageType::IndexType index; + index[0]=0; + index[1]=0; + + typename ImageType::PixelType pixel = reader->GetOutput()->GetPixel(index); + std::cout << pixel << std::endl; + + //Test value + if (reader->GetOutput()->GetNumberOfComponentsPerPixel() != 4) + { + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << " bands instead of 4" << std::endl; + return EXIT_FAILURE; + } + if ((pixel[0] != 0) || (pixel[1] != 1) || (pixel[2] != 20000) || (pixel[3] != 20001)) + { + std::cout << "Found " << pixel[0] << " should be " << 0 << std::endl; + std::cout << "Found " << pixel[1] << " should be " << 1 << std::endl; + std::cout << "Found " << pixel[2] << " should be " << 20000 << std::endl; + std::cout << "Found " << pixel[3] << " should be " << 20001 << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} + +int otbVectorImageComplexIntoRealFloatTest(int argc, char* argv[]) +{ + return otbVectorImageComplexIntoRealGenericTest<float>(argc, argv); +} + +int otbVectorImageComplexIntoRealDoubleTest(int argc, char* argv[]) +{ + return otbVectorImageComplexIntoRealGenericTest<double>(argc, argv); +} diff --git a/Testing/Code/IO/otbIOTests9.cxx b/Testing/Code/IO/otbIOTests9.cxx index 23f030309c0b46abd866399c502781c9ff616113..8ffe676d914a0dc3eeae101d1f237243f8f2dfca 100644 --- a/Testing/Code/IO/otbIOTests9.cxx +++ b/Testing/Code/IO/otbIOTests9.cxx @@ -31,6 +31,10 @@ void RegisterTests() REGISTER_TEST(otbVectorImageComplexNew); REGISTER_TEST(otbVectorImageComplexFloatTest); REGISTER_TEST(otbVectorImageComplexDoubleTest); + REGISTER_TEST(otbVectorImageComplexIntoRealFloatTest); + REGISTER_TEST(otbVectorImageComplexIntoRealDoubleTest); + REGISTER_TEST(otbImageComplexFloatTest); + REGISTER_TEST(otbImageComplexDoubleTest); REGISTER_TEST(otbStreamingImageFilterTest); REGISTER_TEST(otbVectorImageFileReaderWriterTest); REGISTER_TEST(otbStreamingShortImageFileWriterTest); diff --git a/Testing/Code/IO/otbVectorImageTest.cxx b/Testing/Code/IO/otbVectorImageTest.cxx index 72962ebcbbf4c96597f4833b1c18a525883ef993..828e905c2b5715563b7425a66d2681755006d1e4 100644 --- a/Testing/Code/IO/otbVectorImageTest.cxx +++ b/Testing/Code/IO/otbVectorImageTest.cxx @@ -126,53 +126,3 @@ int otbVectorImageTest(int argc, char* argv[]) return EXIT_SUCCESS; } - -int otbVectorImageComplexNew(int argc, char* argv[]) -{ - typedef std::complex<float> PixelType; - typedef otb::VectorImage<PixelType, 2> ImageType; - ImageType::Pointer image = ImageType::New(); - image->Initialize(); - - return EXIT_SUCCESS; -} - - -template<class InternalType> -int otbVectorImageComplexGenericTest(int argc, char* argv[]) -{ - typedef std::complex<InternalType> PixelType; - typedef otb::VectorImage<PixelType, 2> ImageType; - typedef otb::ImageFileReader<ImageType> ReaderType; - typename ReaderType::Pointer reader = ReaderType::New(); - reader->SetFileName(argv[1]); - reader->UpdateOutputInformation(); - std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << std::endl; - itk::ImageIOBase::Pointer io = reader->GetImageIO(); - std::cout << io << std::endl; - reader->Update(); - typename ImageType::IndexType index; - index[0]=0; - index[1]=0; - - typename ImageType::PixelType pixel = reader->GetOutput()->GetPixel(index); - std::cout << pixel << std::endl; - - //Test value - if ((pixel[0] != PixelType(0,1)) - || (pixel[1] != PixelType(20000, 20001))) - { - return EXIT_FAILURE; - } - return EXIT_SUCCESS; -} - -int otbVectorImageComplexFloatTest(int argc, char* argv[]) -{ - return otbVectorImageComplexGenericTest<float>(argc, argv); -} - -int otbVectorImageComplexDoubleTest(int argc, char* argv[]) -{ - return otbVectorImageComplexGenericTest<double>(argc, argv); -} diff --git a/Testing/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.cxx b/Testing/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.cxx index 9086a6600d620b4f77a947076893264af8ccef98..4ab3a9bfd6adf89a3038e0eb7c74071325609a4b 100644 --- a/Testing/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.cxx +++ b/Testing/Code/ObjectDetection/otbStandardMetaImageFunctionBuilder.cxx @@ -124,30 +124,33 @@ int otbStandardMetaImageFunctionBuilder(int argc, char* argv[]) DataObjectContainerType DOC = builder->GetDataObjectContainer(); std::cout << "DataObjectContainer.size(): " << DOC.size() << std::endl; - std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction(0))->GetInternalImageFunction() + std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(0))->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction(5))->GetInternalImageFunction() + std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(3))->GetInternalImageFunction() << std::endl; + std::cout << static_cast<AdaptedFlusserMomentsIF *>(MIF->GetNthFunction(1))->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedFlusserMomentsIF *>(MIF->GetNthFunction(9))->GetInternalImageFunction() + std::cout << static_cast<AdaptedFlusserMomentsIF *>(MIF->GetNthFunction(7))->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(2))->GetInternalImageFunction() + std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(2))->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedRadiometricMomentsIF *>(MIF->GetNthFunction(13))->GetInternalImageFunction() + std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(11))->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(3))->GetInternalImageFunction() +/* + std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction())->GetInternalImageFunction() << std::endl; - std::cout << static_cast<AdaptedFourierMellinDescriptorsIF *>(MIF->GetNthFunction(17))->GetInternalImageFunction() + std::cout << static_cast<AdaptedLocalHistogramIF *>(MIF->GetNthFunction(5))->GetInternalImageFunction() << std::endl; std::cout << static_cast<AdaptedHaralickTexturesIF *>(MIF->GetNthFunction(4))->GetInternalImageFunction() << std::endl; std::cout << static_cast<AdaptedHaralickTexturesIF *>(MIF->GetNthFunction(21))->GetInternalImageFunction() << std::endl; - +*/ + return EXIT_SUCCESS; } diff --git a/UseOTB.cmake.in b/UseOTB.cmake.in index de87400c313817a90ab43ef4f93929c3d00fb26c..1b439daf8281407892cd223be3f21b30f98092dc 100644 --- a/UseOTB.cmake.in +++ b/UseOTB.cmake.in @@ -160,7 +160,7 @@ IF(OTB_USE_EXTERNAL_LIBLAS) IF (NOT LIBLAS_LIBRARY) MESSAGE(FATAL_ERROR "Cannot find Liblas library. Please set LIBLAS_LIBRARY") - ENDIF (NOT PQ_LIBRARY) + ENDIF (NOT LIBLAS_LIBRARY) ENDIF(OTB_USE_EXTERNAL_LIBLAS) ENDIF(OTB_USE_LIBLAS)