annotation_gui_gcp/lib/views/cp_finder_view.py (27 lines of code) (raw):

import typing as t from annotation_gui_gcp.lib.views.image_view import ImageView class ControlPointFinderView(ImageView): def __init__( self, main_ui, web_app, ): super().__init__(main_ui, web_app, "/current_cp_view", [], False) def template_name(self): class_name = self.__class__.__base__.__name__ return class_name def get_candidate_images(self) -> t.List[str]: images_in_existing_views = [] for v in self.main_ui.sequence_views: images_in_existing_views.extend(v.image_list) point = self.main_ui.gcp_manager.points.get(self.main_ui.curr_point) images_this_point = ( [obs.image_id for obs in point.observations] if point else [] ) # First list those images that are not in any other view images_this_point_unaccounted_for = [ i for i in images_this_point if i not in images_in_existing_views ] images_this_point_other_views = [ i for i in images_this_point if i in images_in_existing_views ] return images_this_point_unaccounted_for + images_this_point_other_views