code: def load_colmap_project_file(
      self, project_file=None, image_path=None
  ):
      if project_file is None:
          project_file = self.folder + "project.ini"
  
      self.image_path = image_path
  
      if self.image_path is None:
          try:
              with open(project_file, "r") as f:
                  for line in iter(f.readline, ""):
                      if line.startswith("image_path"):
                          self.image_path = line[11:].strip()
                          break
          except:
              pass
  
      if self.image_path is None:
          print("Warning: image_path not found for reconstruction")
      elif not self.image_path.endswith("/"):
          self.image_path += "/"
  
imports: from collections import OrderedDict, defaultdict
  from io import StringIO
  from itertools import combinations
  import os
  import struct
  from .camera import Camera
  from .image import Image
  import numpy
  from .rotation import Quaternion
label_desc: Use image node_id 2 for calling the SceneManager obj's underlying member method code with example usage: obj.load_colmap_project_file(project_file, image_path) without return types