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

ENH: add cint16 and cint32 pixel type + REFAX :InputParameterType.h and macros

parent 7708683f
No related branches found
No related tags found
No related merge requests found
......@@ -80,10 +80,14 @@ public:
UInt8RGBImageType* GetUInt8RGBImage();
UInt8RGBAImageType* GetUInt8RGBAImage();
// Complex image
// Complex image
ComplexInt16ImageType* GetComplexInt16Image();
ComplexInt32ImageType* GetComplexInt32Image();
ComplexFloatImageType* GetComplexFloatImage();
ComplexDoubleImageType* GetComplexDoubleImage();
ComplexInt16VectorImageType* GetComplexInt16VectorImage();
ComplexInt32VectorImageType* GetComplexInt32VectorImage();
ComplexFloatVectorImageType* GetComplexFloatVectorImage();
ComplexDoubleVectorImageType* GetComplexDoubleVectorImage();
......@@ -152,9 +156,13 @@ protected:
typedef otb::ImageFileReader<UInt8RGBAImageType> UInt8RGBAReaderType;
// Complex
typedef otb::ImageFileReader<ComplexInt16ImageType> ComplexInt16ReaderType;
typedef otb::ImageFileReader<ComplexInt32ImageType> ComplexInt32ReaderType;
typedef otb::ImageFileReader<ComplexFloatImageType> ComplexFloatReaderType;
typedef otb::ImageFileReader<ComplexDoubleImageType> ComplexDoubleReaderType;
typedef otb::ImageFileReader<ComplexInt16VectorImageType> ComplexInt16VectorReaderType;
typedef otb::ImageFileReader<ComplexInt32VectorImageType> ComplexInt32VectorReaderType;
typedef otb::ImageFileReader<ComplexFloatVectorImageType> ComplexFloatVectorReaderType;
typedef otb::ImageFileReader<ComplexDoubleVectorImageType> ComplexDoubleVectorReaderType;
......
......@@ -24,8 +24,8 @@
#include "otbWrapperInputImageParameter.h"
#include "itkUnaryFunctorImageFilter.h"
#include "itkCastImageFilter.h"
#include "otbImageToVectorImageCastFilter.h"
// #include "itkCastImageFilter.h"
// #include "otbImageToVectorImageCastFilter.h"
#include "otbClampImageFilter.h"
namespace otb
......@@ -139,6 +139,22 @@ InputImageParameter::GetImage()
{
return CastImage<DoubleImageType, TImageType> ();
}
else if (dynamic_cast<ComplexInt16ImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexInt16ImageType, TImageType>();
}
else if (dynamic_cast<ComplexInt32ImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexInt32ImageType, TImageType>();
}
else if (dynamic_cast<ComplexFloatImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexFloatImageType, TImageType>();
}
else if (dynamic_cast<ComplexDoubleImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexDoubleImageType, TImageType>();
}
else if (dynamic_cast<UInt8VectorImageType*> (m_Image.GetPointer()))
{
return CastImage<UInt8VectorImageType, TImageType> ();
......@@ -175,21 +191,21 @@ InputImageParameter::GetImage()
{
return CastImage<UInt8RGBImageType, TImageType> ();
}
else if (dynamic_cast<ComplexFloatVectorImageType*>(m_Image.GetPointer()))
else if (dynamic_cast<ComplexInt16VectorImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexFloatVectorImageType, TImageType>();
return CastImage<ComplexInt16VectorImageType, TImageType>();
}
else if (dynamic_cast<ComplexDoubleVectorImageType*>(m_Image.GetPointer()))
else if (dynamic_cast<ComplexInt32VectorImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexDoubleVectorImageType, TImageType>();
return CastImage<ComplexInt32VectorImageType, TImageType>();
}
else if (dynamic_cast<ComplexFloatImageType*>(m_Image.GetPointer()))
else if (dynamic_cast<ComplexFloatVectorImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexFloatImageType, TImageType>();
return CastImage<ComplexFloatVectorImageType, TImageType>();
}
else if (dynamic_cast<ComplexDoubleImageType*>(m_Image.GetPointer()))
else if (dynamic_cast<ComplexDoubleVectorImageType*>(m_Image.GetPointer()))
{
return CastImage<ComplexDoubleImageType, TImageType>();
return CastImage<ComplexDoubleVectorImageType, TImageType>();
}
else
{
......
......@@ -77,12 +77,16 @@ typedef enum
ImagePixelType_uint32,
ImagePixelType_float,
ImagePixelType_double,
ImagePixelType_cint16,
ImagePixelType_cint32,
ImagePixelType_cfloat,
ImagePixelType_cdouble,
} ImagePixelType;
typedef enum
{
ComplexImagePixelType_int16,
ComplexImagePixelType_int32,
ComplexImagePixelType_float,
ComplexImagePixelType_double,
} ComplexImagePixelType;
......@@ -121,13 +125,19 @@ typedef otb::VectorImage<double> DoubleVectorImageType;
typedef otb::Image< itk::RGBPixel<unsigned char> > UInt8RGBImageType;
typedef otb::Image< itk::RGBAPixel<unsigned char> > UInt8RGBAImageType;
typedef std::complex<short> Int16ComplexPixelType;
typedef std::complex<int> Int32ComplexPixelType;
typedef std::complex<float> FloatComplexPixelType;
typedef std::complex<double> DoubleComplexPixelType;
// Complex Image Type (first : double and float)
// Complex Image Type
typedef otb::Image< Int16ComplexPixelType, 2 > ComplexInt16ImageType;
typedef otb::Image< Int32ComplexPixelType, 2 > ComplexInt32ImageType;
typedef otb::Image< FloatComplexPixelType, 2 > ComplexFloatImageType;
typedef otb::Image< DoubleComplexPixelType, 2 > ComplexDoubleImageType;
typedef otb::VectorImage< Int16ComplexPixelType, 2 > ComplexInt16VectorImageType;
typedef otb::VectorImage< Int32ComplexPixelType, 2 > ComplexInt32VectorImageType;
typedef otb::VectorImage<FloatComplexPixelType, 2 > ComplexFloatVectorImageType;
typedef otb::VectorImage< DoubleComplexPixelType, 2 > ComplexDoubleVectorImageType;
......
......@@ -31,15 +31,16 @@ set( OTBApplicationEngine_SRC
otbWrapperInputFilenameListParameter.cxx
otbWrapperOutputImageParameter.cxx
otbWrapperInputImageParameter.cxx
otbWrapperInputImageParameterUInt8.cxx
otbWrapperInputImageParameterInt16.cxx
otbWrapperInputImageParameterUInt16.cxx
otbWrapperInputImageParameterInt32.cxx
otbWrapperInputImageParameterUInt32.cxx
otbWrapperInputImageParameterFloat.cxx
otbWrapperInputImageParameterDouble.cxx
otbWrapperInputImageParameterCFloat.cxx
otbWrapperInputImageParameterCDouble.cxx
otbWrapperInputImageParameterType.cxx
#otbWrapperInputImageParameterUInt8.cxx
#otbWrapperInputImageParameterInt16.cxx
#otbWrapperInputImageParameterUInt16.cxx
#otbWrapperInputImageParameterInt32.cxx
#otbWrapperInputImageParameterUInt32.cxx
#otbWrapperInputImageParameterFloat.cxx
#otbWrapperInputImageParameterDouble.cxx
#otbWrapperInputImageParameterCFloat.cxx
#otbWrapperInputImageParameterCDouble.cxx
otbWrapperParameterKey.cxx
otbWrapperDocExampleStructure.cxx
otbWrapperInputVectorDataParameter.cxx
......
......@@ -28,6 +28,11 @@
return this->GetImage< image##Type > (); \
}
#define otbGetImageAndVectorImageMacro(type) \
otbGetImageMacro(type##Image); \
otbGetImageMacro(type##VectorImage);
/*
#define otbCastImageMacro(InputImageType, OutputImageType, theMethod) \
template<> OutputImageType * \
......
/*
* 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 "otbWrapperInputImageParameter.h"
#include "otbWrapperTypes.h"
#include "otbWrapperInputImageParameterMacros.h"
namespace otb
{
namespace Wrapper
{
otbGetImageAndVectorImageMacro(UInt8);
// otbGetImageMacro(UInt8VectorImage);
otbGetImageAndVectorImageMacro(UInt16);
// otbGetImageMacro(UInt16VectorImage);
otbGetImageAndVectorImageMacro(UInt32);
// otbGetImageMacro(UInt32VectorImage);
otbGetImageAndVectorImageMacro(Int16);
// otbGetImageMacro(Int16VectorImage);
otbGetImageAndVectorImageMacro(Int32);
// otbGetImageMacro(Int32VectorImage);
otbGetImageAndVectorImageMacro(Float);
// otbGetImageMacro(FloatVectorImage);
otbGetImageAndVectorImageMacro(Double);
// otbGetImageMacro(DoubleVectorImage);
otbGetImageAndVectorImageMacro(ComplexInt16);
// otbGetImageMacro(ComplexInt16VectorImage);
otbGetImageAndVectorImageMacro(ComplexInt32);
// otbGetImageMacro(ComplexInt32VectorImage);
otbGetImageAndVectorImageMacro(ComplexFloat);
// otbGetImageMacro(ComplexFloatVectorImage);
otbGetImageAndVectorImageMacro(ComplexDouble);
// otbGetImageMacro(ComplexDoubleVectorImage);
} // end namespace wrapper
} // end namespace otb
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