
modifié : CMakeListsOTB.txt modifié : LICENSE modifié : MakefileNoOTB modifié : Readme.html modifié : Readme.txt modifié : data/10m.tif modifié : data/areaThresholds.txt modifié : data/moiThresholds.txt modifié : data/sdThresholds.txt modifié : include/Appli/Option.hpp modifié : include/Appli/Selected.hpp modifié : include/Appli/Selected.tpp modifié : include/ArrayTree/ArrayTreeBuilder.hpp modifié : include/ArrayTree/ArrayTreeBuilder.tpp modifié : include/ArrayTree/Border.hpp modifié : include/ArrayTree/Border.tpp modifié : include/ArrayTree/GraphWalker.hpp modifié : include/ArrayTree/GraphWalker.tpp modifié : include/ArrayTree/Leader.hpp modifié : include/ArrayTree/Leader.tpp modifié : include/ArrayTree/Weight.hpp modifié : include/ArrayTree/Weight.tpp modifié : include/ArrayTree/triskeleArrayTreeBase.hpp modifié : include/ArrayTree/triskeleArrayTreeBase.tpp modifié : include/ArrayTree/triskeleSort.hpp modifié : include/ArrayTree/triskeleSort.tpp modifié : include/AttributeProfiles.hpp modifié : include/AttributeProfiles.tpp modifié : include/Attributes/AreaAttributes.hpp modifié : include/Attributes/AreaAttributes.tpp modifié : include/Attributes/AverageAttributes.hpp modifié : include/Attributes/AverageAttributes.tpp modifié : include/Attributes/MoIAttributes.hpp modifié : include/Attributes/MoIAttributes.tpp modifié : include/Attributes/SDAttributes.hpp modifié : include/Attributes/SDAttributes.tpp modifié : include/Attributes/WeightAttributes.hpp modifié : include/Attributes/WeightAttributes.tpp modifié : include/Attributes/XYAttributes.hpp modifié : include/Attributes/XYAttributes.tpp modifié : include/CompAttribute.hpp modifié : include/CompAttribute.tpp modifié : include/IImage.hpp modifié : include/IImage.tpp modifié : include/QuadTree/QuadTreeBuilder.hpp modifié : include/Tree.hpp modifié : include/Tree.tpp modifié : include/TreeBuilder.hpp modifié : include/TreeBuilder.tpp modifié : include/TreeStats.hpp modifié : include/TreeStats.tpp modifié : include/XMLTree/XMLTreeBuilder.hpp modifié : include/triskeleBase.hpp modifié : include/triskeleBase.tpp modifié : include/triskeleDealThreads.hpp modifié : include/triskeleDealThreads.tpp modifié : include/triskeleDebug.hpp modifié : include/triskeleGdalGetType.hpp modifié : otb-module.cmake modifié : src/Appli/Option.cpp modifié : src/Appli/Selected.cpp modifié : src/ArrayTree/triskeleArrayTreeBase.cpp modifié : src/CMakeLists.txt modifié : src/IImage.cpp modifié : src/PerfArrayTreeBuilder.cpp modifié : src/QuadTree/QuadTreeBuilder.cpp modifié : src/TestArrayTreeBuilder.cpp modifié : src/Tree.cpp modifié : src/TreeStats.cpp modifié : src/XMLTree/XMLTreeBuilder.cpp modifié : src/apGenerator.cpp modifié : src/triskeleBase.cpp modifié : src/triskeleDebug.cpp
105 lines
3.2 KiB
C++
Executable File
105 lines
3.2 KiB
C++
Executable File
#ifndef _OTB_TRISKELE_BASE_HPP
|
|
#define _OTB_TRISKELE_BASE_HPP
|
|
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <functional>
|
|
#include <cstdint>
|
|
|
|
#include "triskeleDebug.hpp"
|
|
|
|
#define DimImg_MAX UINT32_MAX
|
|
|
|
namespace triskele {
|
|
|
|
using namespace std;
|
|
|
|
/*! Image band type */
|
|
typedef uint16_t DimChanel; // hyperspectral > 256
|
|
|
|
/*! Image size type */
|
|
typedef uint32_t DimSideImg;
|
|
|
|
/*! Number of pixels */
|
|
typedef uint32_t DimImg;
|
|
|
|
/*! Number of nodes */
|
|
typedef uint32_t DimNodeId;
|
|
|
|
/*! Compte le nombre de bits utilisés pour chaque nombre : bitCount[nombre] = nombre de bits*/
|
|
extern int bitCount[];
|
|
|
|
struct Size {
|
|
DimSideImg width, height;
|
|
|
|
inline Size ();
|
|
inline Size (const Size &size);
|
|
inline Size (const DimSideImg &w, const DimSideImg &h);
|
|
};
|
|
inline bool operator== (const Size &s1, const Size &s2);
|
|
inline ostream &operator << (ostream &out, const Size &s);
|
|
extern Size NullSize;
|
|
|
|
struct Point {
|
|
DimSideImg x, y;
|
|
|
|
inline Point ();
|
|
inline Point (const DimSideImg &abs, const DimSideImg &ord);
|
|
inline Point (const Size &size, const DimImg &idx);
|
|
};
|
|
inline bool operator== (const Point &p1, const Point &p2);
|
|
inline ostream &operator << (ostream &out, const Point &p);
|
|
extern Point NullPoint;
|
|
|
|
/*! Convertit un point d'un tableau (on peut imaginer une image à 2 dimension) en un index */
|
|
inline DimImg point2idx (const Size &size, const Point &p);
|
|
inline DimImg point2idx (const Size &size, const Point &tileOrig, const Point &p);
|
|
inline DimImg idxTile2idxRect (const Size &tileSize, const DimImg &tileIdx, const Size &rectSize, const DimImg tileOrig);
|
|
|
|
struct Rect {
|
|
DimSideImg x, y, width, height;
|
|
|
|
inline Rect ();
|
|
inline Rect (const Rect &rect);
|
|
inline Rect (const Point &orig, const Size &size);
|
|
inline Rect (const DimSideImg &abs, const DimSideImg &ord, const DimSideImg &w, const DimSideImg &h);
|
|
|
|
inline DimImg relIdx (const Point &absPos) const;
|
|
inline DimImg absIdx (const DimImg &relIdx, const Size &rectSize) const;
|
|
|
|
template<typename T>
|
|
inline void cpToTile (const Size &size, const T *src, vector<T> &dst) const;
|
|
template<typename T>
|
|
inline void cpFromTile (const Size &size, const vector<T> &src, T *dst) const;
|
|
template<typename T>
|
|
inline void cpFromTileMove (const Size &size, const vector<T> &src, T *dst, const T &move) const;
|
|
};
|
|
inline bool operator== (const Rect &r1, const Rect &r2);
|
|
inline ostream &operator << (ostream &out, const Rect &r);
|
|
extern Rect NullRect;
|
|
|
|
static const DimSideImg printMapMaxSide = 25;
|
|
|
|
/*! Affiche le contenu d'un tableau en spécifiant sa taille */
|
|
template <typename T>
|
|
struct CPrintMap {
|
|
const T *map;
|
|
const Size &size;
|
|
DimNodeId maxValues;
|
|
inline CPrintMap (const T *map, const Size &size, DimNodeId maxValues = 0);
|
|
inline ostream &print (ostream &out) const;
|
|
};
|
|
template <typename T>
|
|
inline CPrintMap<T> printMap (const T *map, const Size &size, DimNodeId maxValues);
|
|
|
|
template <typename T>
|
|
inline ostream &operator << (ostream& out, const CPrintMap<T> &cpm) { return cpm.print (out); }
|
|
|
|
#include "triskeleBase.tpp"
|
|
|
|
} // namespace triskele
|
|
|
|
#endif // _OTB_TRISKELE_BASE_HPP
|