diff --git a/include/lsrmSegmenter.h b/include/lsrmSegmenter.h index 92771b9b902aa2d64984e7f2626322c927c7718b..bedc01a8cb63b11c43b43fd2f4921bbf123d2d6f 100644 --- a/include/lsrmSegmenter.h +++ b/include/lsrmSegmenter.h @@ -81,6 +81,28 @@ namespace lsrm return labelImg; } + /* + * Returns the memory (in bytes) occupied by one node of the graph + */ + virtual unsigned int GetNodeMemory(unsigned int nEdges) = 0; + + /* + * Returns the memory (in bytes) occupied by the entire graph + */ + long long unsigned int GetGraphMemory() + { + long long unsigned int memory = 0; + long long unsigned int numberOfMoves = 0; + for(auto& node : m_Graph.m_Nodes) + { + numberOfMoves += node->m_Contour.size(); + memory += this->GetNodeMemory(node->m_Edges.size()); + } + memory += std::ceil(numberOfMoves / 4); + + return memory; + } + /* Set methods */ SetMacro(bool, DoBFSegmentation); SetMacro(unsigned int, NumberOfIterations);