def add_correspondences_from_tracks_manager( self, tracks_manager: pymap.TracksManager) -> None: for track_id in tracks_manager.get_track_ids(): if track_id not in self.points: continue track_obs = tracks_manager.get_track_observations(track_id) for shot_id in track_obs.keys(): if shot_id in self.shots: observation = tracks_manager.get_observation( shot_id, track_id) self.add_observation(shot_id, track_id, observation)
def as_graph(tracks_manager: pymap.TracksManager) -> nx.Graph: """Return the tracks manager as a bipartite graph (legacy).""" tracks = tracks_manager.get_track_ids() images = tracks_manager.get_shot_ids() graph = nx.Graph() for track_id in tracks: graph.add_node(track_id, bipartite=1) for shot_id in images: graph.add_node(shot_id, bipartite=0) for track_id in tracks: for im, obs in tracks_manager.get_track_observations(track_id).items(): graph.add_edge( im, track_id, feature=obs.point, feature_scale=obs.scale, feature_id=obs.id, feature_color=obs.color, feature_segmentation=obs.segmentation, feature_instance=obs.instance, ) return graph