An error occurred while loading the file. Please try again.
-
Julien Veyssier authored
Signed-off-by:
Julien Veyssier <eneiluj@posteo.net>
Unverifiede9664847
#ifndef __LSGRM_GRAPH_OPERATIONS_H
#define __LSGRM_GRAPH_OPERATIONS_H
#include "lsgrmHeader.h"
#include "grmGraphOperations.h"
#include "otbVectorImage.h"
#include "otbMultiChannelExtractROI.h"
#include "itkGrayscaleFillholeImageFilter.h"
namespace lsgrm
{
struct ProcessingTile
{
long int rows[2]; // lower and upper rows (-1 means that the row has not be considered)
long int columns[2]; // lower and upper columns (-1 means that the row has not be considered)
long int tileNeighbors[8]; // tile Neighbors at (top, top right, right, bottom right, bottom, bottom left, left, top left)
long int margin[4]; // Is there a margin at top, left, bottom or right
otb::VectorImage<double>::RegionType region; // The image region
// Temporary files
std::string nodeFileName;
std::string edgeFileName;
std::string nodeMarginFileName;
std::string edgeMarginFileName;
};
// Read an image region
template<class TSegmenter>
typename TSegmenter::ImageType::Pointer ReadImageRegion(
typename TSegmenter::ImageType * inputPtr,
typename TSegmenter::ImageType::RegionType region);
template<class TSegmenter>
typename TSegmenter::LabelImageType::Pointer
MergeAllGraphsAndAchieveSegmentation(
const typename TSegmenter::ParamType& params,
const float& threshold,
std::vector<ProcessingTile>& tiles,
const unsigned int nbTilesX,
const unsigned int nbTilesY,
const unsigned int imageWidth,
const unsigned int imageHeight,
const unsigned int imageBands,
unsigned int numberOfIterations);
template<class TSegmenter>
long long unsigned int RunFirstPartialSegmentation(
typename TSegmenter::ImageType * inputPtr,
const typename TSegmenter::ParamType& params,
const float& threshold,
const unsigned int niter,
const unsigned int niter2,
std::vector<ProcessingTile>& tiles,
const unsigned int nbTilesX,
const unsigned int nbTilesY,
const unsigned int tileWidth,
const unsigned int tileHeight,
bool& isFusion);
template<class TSegmenter>
long long unsigned int RunPartialSegmentation(
const typename TSegmenter::ParamType& params,
const float& threshold,
const unsigned int niter,
std::vector<ProcessingTile>& tiles,
const unsigned int nbTilesX,
const unsigned int nbTilesY,
const unsigned int imageWidth,
const unsigned int imageHeight,