示例#1
0
    def __init__(self, slipmap,
                 grid_width=20, grid_height=20, thumb_size=30, C=CameraParams()):
        self.thumb_size = thumb_size
        self.width = grid_width * thumb_size
        self.height = grid_height * thumb_size
        self.mosaic = cv.CreateImage((self.height,self.width),8,3)
        cuav_util.zero_image(self.mosaic)
        self.display_regions = grid_width*grid_height
        self.regions = []
        self.regions_sorted = []
        self.page = 0
        self.images = []
        self.current_view = 0
        self.full_res = False
        self.boundary = []
        self.displayed_image = None
        self.last_click_position = None
        self.c_params = C
        import mp_image, wx
        self.image_mosaic = mp_image.MPImage(title='Mosaic', events=[wx.EVT_MOUSE_EVENTS, wx.EVT_KEY_DOWN])
        self.slipmap = slipmap
        self.selected_region = 0

        self.view_image = None
        self.brightness = 1

        self.slipmap.add_callback(functools.partial(self.map_callback))
示例#2
0
 def redisplay_mosaic(self):
     '''re-display whole mosaic page'''
     self.mosaic = cv.CreateImage((self.height,self.width),8,3)
     cuav_util.zero_image(self.mosaic)
     for ridx in range(len(self.regions)):
         self.display_mosaic_region(ridx)
     self.image_mosaic.set_image(self.mosaic, bgr=True)
示例#3
0
 def redisplay_mosaic(self):
     '''re-display whole mosaic page'''
     self.mosaic = cv.CreateImage((self.height, self.width), 8, 3)
     cuav_util.zero_image(self.mosaic)
     for ridx in range(len(self.regions)):
         self.display_mosaic_region(ridx)
     if self.brightness != 1.0:
         cv.ConvertScale(self.mosaic, self.mosaic, scale=self.brightness)
     self.image_mosaic.set_image(self.mosaic, bgr=True)
示例#4
0
 def redisplay_mosaic(self):
     '''re-display whole mosaic page'''
     width = (self.width // self.thumb_size) * self.thumb_size
     height = (self.height // self.thumb_size) * self.thumb_size
     self.mosaic = cv.CreateImage((width,height),8,3)
     cuav_util.zero_image(self.mosaic)
     for ridx in range(len(self.regions_sorted)):
         self.display_mosaic_region(ridx)
     if self.brightness != 1.0:
         cv.ConvertScale(self.mosaic, self.mosaic, scale=self.brightness)
     self.image_mosaic.set_image(self.mosaic, bgr=True)
示例#5
0
    def __init__(self, slipmap,
                 grid_width=20, grid_height=20, thumb_size=35, C=CameraParams()):
        self.thumb_size = thumb_size
        self.width = grid_width * thumb_size
        self.height = grid_height * thumb_size
        self.mosaic = cv.CreateImage((self.height,self.width),8,3)
        cuav_util.zero_image(self.mosaic)
        self.display_regions = grid_width*grid_height
        self.regions = []
        self.regions_sorted = []
        self.page = 0
        self.sort_type = 'Time'
        self.images = []
        self.current_view = 0
        self.last_view_latlon = None
        self.view_filename = None
        self.full_res = False
        self.boundary = []
        self.displayed_image = None
        self.last_click_position = None
        self.c_params = C
        import wx
        self.image_mosaic = mp_image.MPImage(title='Mosaic', 
                                             mouse_events=True,
                                             key_events=True,
                                             auto_size=True)
        self.slipmap = slipmap
        self.selected_region = 0

        self.view_image = None
        self.brightness = 1

        self.slipmap.add_callback(functools.partial(self.map_callback))

        self.menu = MPMenuTop([MPMenuSubMenu('View',
                                             items=[MPMenuRadio('Sort By', 'Select sorting key',
                                                                returnkey='setSort',
                                                                selected=self.sort_type,
                                                                items=['Score\tAlt+S',
                                                                       'Compactness\tAlt+C',
                                                                       'Distinctiveness\tAlt+D',
                                                                       'Whiteness\tAlt+W',
                                                                       'Time\tAlt+T']),
                                                    MPMenuItem('Next Page\tCtrl+N', 'Next Page', 'nextPage'),
                                                    MPMenuItem('Previous Page\tCtrl+P', 'Previous Page', 'previousPage'),
                                                    MPMenuItem('Brightness +\tCtrl+B', 'Increase Brightness', 'increaseBrightness'),
                                                    MPMenuItem('Brightness -\tCtrl+Shift+B', 'Decrease Brightness', 'decreaseBrightness')
                                                    ])])
        self.image_mosaic.set_menu(self.menu)

        self.popup_menu = MPMenuSubMenu('Popup',
                                        items=[MPMenuItem('Show Image', returnkey='showImage')])
        self.image_mosaic.set_popup_menu(self.popup_menu)
示例#6
0
    def __init__(self,
                 slipmap,
                 grid_width=20,
                 grid_height=20,
                 thumb_size=35,
                 C=CameraParams(),
                 camera_settings=None,
                 image_settings=None,
                 start_menu=False):
        self.thumb_size = thumb_size
        self.width = grid_width * thumb_size
        self.height = grid_height * thumb_size
        self.mosaic = cv.CreateImage((self.height, self.width), 8, 3)
        cuav_util.zero_image(self.mosaic)
        self.display_regions = grid_width * grid_height
        self.regions = []
        self.regions_sorted = []
        self.page = 0
        self.sort_type = 'Time'
        self.images = []
        self.current_view = 0
        self.last_view_latlon = None
        self.view_filename = None
        self.full_res = False
        self.boundary = []
        self.displayed_image = None
        self.last_click_position = None
        self.c_params = C
        self.camera_settings = camera_settings
        self.image_settings = image_settings
        self.start_menu = start_menu
        self.has_started = not start_menu
        import wx
        self.image_mosaic = mp_image.MPImage(title='Mosaic',
                                             mouse_events=True,
                                             key_events=True,
                                             auto_size=True)
        self.slipmap = slipmap
        self.selected_region = 0

        self.view_image = None
        self.brightness = 1

        # dictionary of image requests, contains True if fullres image is wanted
        self.image_requests = {}

        self.slipmap.add_callback(functools.partial(self.map_callback))

        self.add_menus()
示例#7
0
    def __init__(self, slipmap,
                 grid_width=20, grid_height=20, thumb_size=35, C=CameraParams(),
                 camera_settings = None,
                 image_settings = None,
                 start_menu=False):
        self.thumb_size = thumb_size
        self.width = grid_width * thumb_size
        self.height = grid_height * thumb_size
        self.mosaic = cv.CreateImage((self.height,self.width),8,3)
        cuav_util.zero_image(self.mosaic)
        self.display_regions = grid_width*grid_height
        self.regions = []
        self.regions_sorted = []
        self.page = 0
        self.sort_type = 'Time'
        self.images = []
        self.current_view = 0
        self.last_view_latlon = None
        self.view_filename = None
        self.full_res = False
        self.boundary = []
        self.displayed_image = None
        self.last_click_position = None
        self.c_params = C
        self.camera_settings = camera_settings
        self.image_settings = image_settings
        self.start_menu = start_menu
        self.has_started = not start_menu
        import wx
        self.image_mosaic = mp_image.MPImage(title='Mosaic', 
                                             mouse_events=True,
                                             key_events=True,
                                             auto_size=True)
        self.slipmap = slipmap
        self.selected_region = 0

        self.view_image = None
        self.brightness = 1

        # dictionary of image requests, contains True if fullres image is wanted
        self.image_requests = {}

        self.slipmap.add_callback(functools.partial(self.map_callback))

        self.add_menus()
示例#8
0
    def __init__(self, slipmap,
                 grid_width=20, grid_height=20, thumb_size=35, C=CameraParams(),
                 camera_settings = None,
                 image_settings = None,
                 start_menu=False,
                 classify=None):
        self.thumb_size = thumb_size
        self.width = grid_width * thumb_size
        self.height = grid_height * thumb_size
        self.mosaic = cv.CreateImage((self.height,self.width),8,3)
        cuav_util.zero_image(self.mosaic)
        self.display_regions = grid_width*grid_height
        self.regions = []
        self.regions_sorted = []
        self.regions_hidden = set()
        self.mouse_region = None
        self.ridx_by_frame_time = {}
        self.page = 0
        self.sort_type = 'Time'
        self.images = []
        self.current_view = 0
        self.last_view_latlon = None
        self.view_filename = None
        self.full_res = False
        self.boundary = []
        self.displayed_image = None
        self.last_click_position = None
        self.c_params = C
        self.camera_settings = camera_settings
        self.image_settings = image_settings
        self.start_menu = start_menu
        self.classify = classify
        self.has_started = not start_menu
        import wx
        self.image_mosaic = mp_image.MPImage(title='Mosaic', 
                                             mouse_events=True,
                                             key_events=True,
                                             auto_size=False,
                                             report_size_changes=True)
        self.slipmap = slipmap
        self.selected_region = 0

        self.view_image = None
        self.brightness = 1

        # dictionary of image requests, contains True if fullres image is wanted
        self.image_requests = {}

        self.slipmap.add_callback(functools.partial(self.map_callback))

        if classify:
            import lxml.objectify, lxml.etree
            with open(classify) as f:
                categories = lxml.objectify.fromstring(f.read())
                cat_names = set()
                self.categories = []
                try:
                    for c in categories.category:
                        self.categories.append((c.get('shortcut') or '', c.text))
                        if c.text in cat_names:
                            print 'WARNING: category name',c.text,'used more than once'
                        else:
                            cat_names.add(c.text)
                except AttributeError as ex:
                    print ex
                    print 'failed to load any categories for classification'
            self.region_class = lxml.objectify.E.regions()

        self.add_menus()