triskele/include/IImage.hpp
Git Merciol e097095f3b nouveau fichier : include/ArrayTree/ArrayTreeBuilder.hpp
nouveau fichier : include/ArrayTree/ArrayTreeBuilder.tpp
	nouveau fichier : include/ArrayTree/Border.hpp
	nouveau fichier : include/ArrayTree/GraphWalker.hpp
	nouveau fichier : include/ArrayTree/Leader.hpp
	nouveau fichier : include/ArrayTree/Weight.hpp
	nouveau fichier : include/ArrayTree/Weight.tpp
	nouveau fichier : include/ArrayTree/triskeleArrayTreeBase.hpp
	nouveau fichier : include/ArrayTree/triskeleSort.hpp
	nouveau fichier : include/ArrayTree/triskeleSort.tpp
	modifié :         include/Attribute.hpp
	modifié :         include/Attributes/AreaAttribute.hpp
	supprimé :        include/BuildTree.hpp
	supprimé :        include/DAPTree/Border.hpp
	supprimé :        include/DAPTree/DAPTreeBuilder.hpp
	supprimé :        include/DAPTree/DAPTreeBuilder.tpp
	supprimé :        include/DAPTree/GraphWalker.hpp
	supprimé :        include/DAPTree/ParRnk.hpp
	supprimé :        include/DAPTree/Weight.hpp
	supprimé :        include/DAPTree/baseDAPTree.hpp
	supprimé :        include/DAPTree/sort.hpp
	nouveau fichier : include/IImage.hpp
	nouveau fichier : include/IImage.tpp
	supprimé :        include/ImageInterface.hpp
	supprimé :        include/ImageInterface.tpp
	modifié :         include/QuadTree/QuadTreeBuilder.hpp
	modifié :         include/Tree.hpp
	nouveau fichier : include/TreeBuilder.hpp
	supprimé :        include/TreeOfShapesGeraud/ToSBuilder.hpp
	supprimé :        include/TreeOfShapesGeraud/ToSutils.hpp
	modifié :         include/XMLTree/XMLTreeBuilder.hpp
	supprimé :        include/baseDef.hpp
	supprimé :        include/getType.hpp
	nouveau fichier : include/triskeleBase.hpp
	renommé :         include/dealThreads.hpp -> include/triskeleDealThreads.hpp
	nouveau fichier : include/triskeleDealThreads.tpp
	renommé :         include/debug.hpp -> include/triskeleDebug.hpp
	nouveau fichier : include/triskeleGdalGetType.hpp
	modifié :         otb-module.cmake
	nouveau fichier : src/ArrayTree/triskeleArrayTreeBase.cpp
	modifié :         src/Attribute.cpp
	modifié :         src/Attributes/AreaAttribute.cpp
	modifié :         src/CMakeLists.txt
	supprimé :        src/DAPTree/GraphWalker.cpp
	supprimé :        src/DAPTree/ParRnk.cpp
	supprimé :        src/DAPTree/baseDAPTree.cpp
	supprimé :        src/DAPTree/sort.cpp
	modifié :         src/QuadTree/QuadTreeBuilder.cpp
	modifié :         src/Tree.cpp
	supprimé :        src/TreeOfShapesGeraud/ToSBuilder.cpp
	supprimé :        src/TreeOfShapesGeraud/ToSutils.cpp
	modifié :         src/XMLTree/XMLTreeBuilder.cpp
	supprimé :        src/debug.cpp
	modifié :         src/testMain.cpp
	nouveau fichier : src/triskeleDebug.cpp
	supprimé :        tests/ToSGeraudCoord.txt
	supprimé :        tests/ToSGeraudIdx.ods
2017-11-26 18:38:11 +01:00

61 lines
1.6 KiB
C++

#ifndef _OTB_TRISKELE_I_IMAGE_HPP
#define _OTB_TRISKELE_I_IMAGE_HPP
#include <string>
#include <iostream>
#include <gdal/gdal_priv.h>
#include "triskeleBase.hpp"
#include "triskeleGdalGetType.hpp"
namespace otb {
namespace triskele {
/** Interface Image */
template<typename PixelT>
class IImage {
public:
IImage (const std::string &imageFilename) : filename (imageFilename), read (false) {}
~IImage () { close(); if (pixels) delete[] pixels; pixels = nullptr; }
PixelT *getPixels () { return pixels; }
PixelT getValue (const DimImg &id) const { return pixels[id]; }
PixelT getValue (const Point &point) const { return pixels[pointToId (size, point)]; }
const std::string &getFilename () const { return filename; }
DimImg getPixelsCount () const { return (DimImg)size.width * (DimImg)size.height; }
const Size &getSize () const { return size; }
GDALDataType getDataType () const { return dataType; }
void readImage (const Point &cropOrig, const Size &cropSize);
void readImage () { readImage (Point(), size); }
void close ();
const bool &isRead () const { return read; }
bool isEmpty () const { return getPixelsCount () == 0; }
private:
IImage (const IImage &o) = delete;
IImage &operator= (const IImage&) = delete;
private:
static uint32_t gdalCount;
std::string filename;
Size size;
GDALDataType dataType;
GDALDataset *gdalInputDataset;
PixelT *pixels;
bool read;
};
#include "IImage.tpp"
} // triskele
} // otb
#endif // _OTB_TRISKELE_I_IMAGE_HPP