code: def read_extrinsics_binary(path_to_model_file):
      """
      see: src/base/reconstruction.cc
          void Reconstruction::ReadImagesBinary(const std::string& path)
          void Reconstruction::WriteImagesBinary(const std::string& path)
      """
      images = {}
      with open(path_to_model_file, "rb") as fid:
          num_reg_images = read_next_bytes(fid, 8, "Q")[0]
          for _ in range(num_reg_images):
              binary_image_properties = read_next_bytes(
                  fid, num_bytes=64, format_char_sequence="idddddddi"
              )
              image_id = binary_image_properties[0]
              qvec = np.array(binary_image_properties[1:5])
              tvec = np.array(binary_image_properties[5:8])
              camera_id = binary_image_properties[8]
              image_name = ""
              current_char = read_next_bytes(fid, 1, "c")[0]
              while (
                  current_char != b"\x00"
              ):  # look for the ASCII 0 entry
                  image_name += current_char.decode("utf-8")
                  current_char = read_next_bytes(fid, 1, "c")[0]
              num_points2D = read_next_bytes(
                  fid, num_bytes=8, format_char_sequence="Q"
              )[0]
              x_y_id_s = read_next_bytes(
                  fid,
                  num_bytes=24 * num_points2D,
                  format_char_sequence="ddq" * num_points2D,
              )
              xys = np.column_stack(
                  [
                      tuple(map(float, x_y_id_s[0::3])),
                      tuple(map(float, x_y_id_s[1::3])),
                  ]
              )
              point3D_ids = np.array(tuple(map(int, x_y_id_s[2::3])))
              images[image_id] = Image(
                  id=image_id,
                  qvec=qvec,
                  tvec=tvec,
                  camera_id=camera_id,
                  name=image_name,
                  xys=xys,
                  point3D_ids=point3D_ids,
              )
      return images
  
file_path: gaussian-splatting/scene/colmap_loader.py
imports: import numpy
  import collections
  import struct
label_desc: Use image node_id 7 for calling a global function with example usage: read_extrinsics_binary(path_to_model_file) and returns: images