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);