/usr/include/OTB-5.8/otbSOMClassifier.h is in libotb-dev 5.8.0+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | /*=========================================================================
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.
=========================================================================*/
#ifndef otbSOMClassifier_h
#define otbSOMClassifier_h
#include "itkProcessObject.h"
#include "itkMembershipSample.h"
namespace otb
{
/** \class SOMClassifier
* \brief This class implements a SOM-Based classifier.
*
* The classifier iterates on the input list sample, feeding
* the output membership sample with the one-dimensionnal index
* of the winner neuron.
*
* Since this classifier differs from the base framework of itk in that it
* does not use DecisionRule and Memberships function, it derives from itk::ProcessObject
* instead of itk::SampleClassifierBase.
*
* \sa SOM, SOMMap, SOMActivationBuilder.
*
* \ingroup OTBSOM
*/
template<class TSample, class TSOMMap, class TLabel>
class ITK_EXPORT SOMClassifier :
public itk::ProcessObject
{
public:
/** Standard class typedef*/
typedef SOMClassifier Self;
typedef itk::ProcessObject Superclass;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
/** Standard macros */
itkTypeMacro(SOMClassifier, itk::ProcessObject);
itkNewMacro(Self);
/** typedefs from TSample object */
typedef TSample SampleType;
typedef typename SampleType::Pointer SamplePointerType;
typedef typename SampleType::MeasurementType MeasurementType;
typedef typename SampleType::MeasurementVectorType MeasurementVectorType;
typedef typename SampleType::MeasurementVectorType::ValueType InputPixelType;
/** SOM Map typedefs */
typedef TSOMMap SOMMapType;
typedef typename SOMMapType::Pointer SOMMapPointerType;
/** Output typedefs */
typedef itk::Statistics::MembershipSample<SampleType> OutputType;
typedef typename OutputType::Pointer OutputPointerType;
/** Label type typedef */
typedef TLabel ClassLabelType;
/// Accessors
void SetMap(SOMMapType * sommap);
SOMMapType * GetMap(void);
itkSetObjectMacro(Sample, SampleType);
itkGetObjectMacro(Sample, SampleType);
OutputType * GetOutput();
protected:
/** Constructor */
SOMClassifier();
/** Destructor */
~SOMClassifier() ITK_OVERRIDE {}
/** PrintSelf method */
void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE;
/** Starts the classification process */
void GenerateData() ITK_OVERRIDE;
private:
/// The input sample
SamplePointerType m_Sample;
}; // end of class
} // end of namespace otb
#ifndef OTB_MANUAL_INSTANTIATION
#include "otbSOMClassifier.txx"
#endif
#endif
|