Ejemplo n.º 1
0
def open_url(screen, img):
    gl.ISURL = 1
    num_imgs = len(gl.files)
    paint_screen(screen, gl.BLACK)
    set_caption("Extract from Web - imgv")
    normal_cursor()
    show_message(screen, "Enter a Web URL to extract images from", 20, 15, ("transparent"))
    gl.URL = ask(screen, "http://")
    if gl.URL != None:
        gl.files = []
        wait_cursor()
        show_message(screen, "Loading. Please wait..", 39, 42, ("transparent"))
        for ext in gl.IMG_TYPES:
            if gl.URL.endswith(ext):
                gl.files.append(str("".join(gl.URL)))
                return (load_img(gl.files[0], screen), 1)
    else:
        return (img, num_imgs)
    gl.files = []
    check_indexhtml()
    if gl.URL_ERROR:
        gl.files.append(gl.ERROR_IMG)
        return (load_img(gl.ERROR_IMG, screen), len(gl.files))
    if len(gl.files) < 1:
        gl.files.append(gl.ERROR_IMG)
    gl.files = [x.replace(" ", "%20") for x in gl.files]  # urls need %20 for spaces
    return (load_img(gl.files[0], screen), len(gl.files))
Ejemplo n.º 2
0
def square_four(screen, file):
    wait_cursor()
    draw_lines(screen)
    num_imgs = len(gl.files)
    if file >= num_imgs or file <= 0:
        file = 0
    img_four_name = gl.files[file]
    img_four_file = file
    img_four = load_img(img_four_name, screen, 0)
    file = file + 1
    img_four = adjust_img_size(img_four, screen.get_width(), screen.get_height())
    img_four_rect = img_four.get_rect()
    img_four_rect[0] = (screen.get_width() / 2)
    img_four_rect[1] = (screen.get_height() / 2)
    screen.blit(img_four, img_four_rect)
    update(img_four_rect)
    draw_lines(screen)
    if gl.FOUR_STATUS_BARS:
        font_size = 9
        font = pygame.font.Font(gl.FONT_NAME, font_size)
        name = os.path.basename(img_four_name)
        name = check_truncate(screen.get_width(), name)
        img_status = "%s [%d/%d]" % (name, img_four_file + 1, num_imgs)
        raise_up = 12
        show_message(screen, img_status, ((screen.get_width() / 2) + (screen.get_width() / 4 - font.size(img_status)[0]/2), screen.get_height() - raise_up), font_size, ("bold"))
    normal_cursor()
    return (file, img_four_rect, img_four_name, img_four_file)
Ejemplo n.º 3
0
def command_refresh(refresh_img, screen, files, file):
    "reset image to its original state"
    wait_cursor()
    new_img = refresh_img
    rect = get_center(screen, new_img)
    cur_filename = ""
    if len(gl.files) > 1:
        cur_filename = gl.files[file]
    else:
        normal_cursor()
        return (new_img, new_img, get_center(screen, new_img), file)
    if gl.SHRUNK and len(gl.files) > 1:
        # reload shrunk images to their true size
        gl.SKIP_FIT = 1
        refresh_img = load_img(gl.files[file])
        rect = get_center(screen, refresh_img)
        adjust_files(gl.SUBDIRS)
        if cur_filename in gl.files:
            file = gl.files.index(cur_filename)  # go back if new images were loaded
        my_update_screen(refresh_img, rect, file)
        normal_cursor()
        return (refresh_img, new_img, rect, file)
    adjust_files(gl.SUBDIRS)
    if cur_filename in gl.files and len(gl.files) > 1:
        file = gl.files.index(cur_filename)  # go back if new images were loaded
    my_update_screen(refresh_img, rect, file)
    normal_cursor()
    return (new_img, new_img, get_center(screen, new_img), file)
Ejemplo n.º 4
0
def print_version(screen, screen_height):
    imgvlogo = load_img(gl.IMGV_LOGO_SMALL, screen, False)
    imgvlogo_rect = imgvlogo.get_rect()
    imgvlogo_rect[0] = 5
    imgvlogo_rect[1] = screen_height - 50
    screen.blit(imgvlogo, imgvlogo_rect)
    update(imgvlogo_rect)

    msg = "Version      %s" % gl.IMGV_VERSION
    msg_font = pygame.font.Font(gl.FONT_NAME, 11)
    msg_font.set_bold(1)
    char = 0
    i = 0
    pygame.event.set_blocked(MOUSEMOTION)
    while 1:
        event = pygame.event.poll()
        pygame.time.wait(1)
        check_quit(event)
        if char < len(msg):
            if msg[char] != ' ': # don't delay on spaces
                pygame.time.delay(75)
            ren = msg_font.render(msg[char], 1, gl.RED) # one char at a time
            ren_rect = ren.get_rect()
            # center it
            ren_rect[0] += (i + 7)
            ren_rect[1] = screen_height - 15
            screen.blit(ren, ren_rect)
            i += ren.get_width() # make letters space evenly
            char += 1
            update(ren_rect)
        else:
            break
Ejemplo n.º 5
0
Archivo: edit.py Proyecto: rkulla/imgv
def change_box(screen, positions):
    change_img = load_img(gl.CHANGE_BOX, False)
    change_rect = change_img.get_rect()
    change_rect[0] = positions[1]
    change_rect[1] = positions[0]
    screen.blit(change_img, change_rect)
    update(change_rect)
    return change_rect
Ejemplo n.º 6
0
def command_shuffle(new_img, img, screen, rect, file):
    "randomize the images"
    wait_cursor()
    shuffle(gl.files)
    new_img = load_img(gl.files[file])
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, rect)
Ejemplo n.º 7
0
 def show_current_image(self, file):
     self.current = load_img(gl.files[file], self.screen, False)
     (self.current, img_width, img_height) = preview_img(self.screen, self.current)
     current_rect = self.current.get_rect()
     current_rect[0] = 15
     current_rect[1] = self.prev_pic_row
     self.screen.blit(self.current, current_rect)
     update(current_rect)
     img_border(self.screen, img_width, img_height, 15, self.prev_pic_row - 2)
Ejemplo n.º 8
0
def command_unshuffle(new_img, img, screen, rect, file):
    "un-randomize the images"
    was_on = gl.files[file]
    wait_cursor()
    gl.files.sort(lambda x, y: cmp(x.lower(), y.lower()))
    file = gl.files.index(was_on)
    new_img = load_img(gl.files[file])
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, rect, file)
Ejemplo n.º 9
0
def command_first_img(new_img, screen, file, num_imgs, rect):
    "jump to the first image"
    wait_cursor()
    start = start_timer()
    file = 0
    new_img = load_img(gl.files[file], screen)
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)
Ejemplo n.º 10
0
def command_shuffle(new_img, img, screen, rect, file, num_imgs):
    "randomize the images"
    wait_cursor()
    start = start_timer()
    shuffle(gl.files)
    new_img = load_img(gl.files[file], screen)
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    return (new_img, new_img, new_img, rect)
Ejemplo n.º 11
0
def command_show_dirs(new_img, img, screen, rect, file):
    (screen, before_winsize, not_accepted) = adjust_screen(screen)
    set_caption("Directory Browser - imgv")
    paint_screen(gl.BLACK)
    file = show_dirs(screen, file)
    wait_cursor()
    num_imgs = len(gl.files)
    if gl.ESCAPED != 1:
        if num_imgs < 1 or len(gl.files) == 0:
            gl.files = [gl.IMGV_LOGO]
            num_imgs = 0
            new_img = img = load_img(gl.files[file])
        else:
            new_img = load_img(gl.files[file])
    screen = restore_screen(screen, before_winsize, not_accepted, new_img, file, rect)
    rect = get_center(screen, new_img)
    if gl.ESCAPED != 1:
        my_update_screen(new_img, rect, file)
    else:
        my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)
Ejemplo n.º 12
0
def draw(canvas):
    img_1 = load_img('rocket_frame_1.txt')
    img_2 = load_img('rocket_frame_2.txt')
    images = [img_1, img_2]

    symbol = '+*.:'
    x, y = window.getmaxyx()

    coroutines = [
        blink(canvas, row=random.randint(0, x - 1), column=random.randint(0, y - 1), symbol=random.choice(symbol)) for
        _
        in range(50)]

    coroutines.append(animate_spaceship(canvas=canvas, images=images))

    while True:
        for coroutine in coroutines.copy():
            try:
                coroutine.send(None)
            except StopIteration:
                coroutines.remove(coroutine)
                break
        time.sleep(0.2)
Ejemplo n.º 13
0
def command_play_list_options(screen, file):
    paint_screen(gl.BLACK)
    old_file = file
    (file, msg) = play_list_options(screen, file)
    if (msg != None and file != "rclicked" and file != "deleteit"):
        play_list_options_msg(screen, msg)
    if (file == "rclicked"):
        edit_play_list(screen, msg)
        file = old_file
    if (file == "deleteit"):
        delete_play_list(msg)
        file = old_file
    new_img = load_img(gl.files[file])
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)
Ejemplo n.º 14
0
def command_img_names(screen, new_img, img, file, rect):
    num_imgs = len(gl.files)
    (screen, before_winsize, not_accepted) = adjust_screen(screen)
    paint_screen(gl.BLACK)
    normal_cursor()
    gl.SORT_HIT = 0
    (list_names, filename, x, my_string) = command_file_master(screen, gl.files,\
    "(%d Images)" % len(gl.files), 15, 0, 1, 0)
    wait_cursor()
    screen = restore_screen(screen, before_winsize, not_accepted, new_img, file, rect)
    if not filename == None:
        if num_imgs > 1:
            file = gl.files.index(filename)
        new_img = load_img(gl.files[file])
        rect = get_center(screen, new_img)
        my_update_screen(new_img, rect, file)
    normal_cursor()
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    return (new_img, new_img, new_img, file, rect)
Ejemplo n.º 15
0
Archivo: imgv.py Proyecto: rkulla/imgv
 def __init__(self):
     init_screen()
     wait_cursor()
     self.gfx = {}
     self.gfx['screen'] = pygame.display.set_mode(gl.DEFAULT_RES, RESIZABLE)
     set_caption(gl.TITLE)
     if gl.REMOTE == 1:
         show_message("Loading image. Please wait..", 34, 42)
     self.gfx['file'] = 0
     if len(gl.files) < 1:
         gl.files = [gl.IMGV_LOGO]
     self.gfx['img'] = load_img(gl.files[self.gfx['file']])
     wait_cursor()
     self.gfx['refresh_img'] = self.gfx['img']
     self.gfx['new_img'] = self.gfx['img']
     self.gfx['rect'] = get_center(self.gfx['screen'], self.gfx['new_img'])
     my_update_screen(self.gfx['new_img'], self.gfx['rect'], self.gfx['file'])
     normal_cursor()
     if gl.START_FULLSCREEN:
         command_fullscreen()
         my_update_screen(self.gfx['new_img'], self.gfx['rect'], self.gfx['file'])
     self.minus1 = 0
     self.minus2 = 0
     self.last_rect = Rect(self.gfx['rect'])
Ejemplo n.º 16
0
def handle_keyboard(event, gfx, last_rect):
    screen = gfx['screen']
    rect = gfx['rect']
    new_img = gfx['new_img']
    img = gfx['img']
    refresh_img = gfx['refresh_img']
    file = gfx['file']

    if hit_key(event, K_d):
        gl.USING_SCROLL_MENU = 1
        # save current things in case the user ESCAPES out of show_dirs()
        gl.LAST_DIR = getcwd()
        last_files = gl.files
        (last_new_img, last_img, last_refresh_img, last_file,
         last_rect) = (new_img, img, refresh_img, file, rect)
        (new_img, img, refresh_img, file,
         rect) = command_show_dirs(new_img, img, screen, rect, file)
        # user ESCAPED from show_dirs, reset last values
        if gl.ESCAPED:
            gl.ADDED_DIR_NUMS = 0
            (new_img, img, refresh_img, file, rect) = (last_new_img,
                                                       last_img, last_refresh_img, last_file, last_rect)
            chdir(gl.LAST_DIR)
            gl.files = last_files
            gl.USING_SCROLL_MENU = 0
            my_update_screen(new_img, rect, file)
        else:
            gl.REFRESH_IMG_COUNT = 0
        gl.ESCAPED = 0
        gl.USING_SCROLL_MENU = 0
    if hit_key(event, K_i):
        (new_img, img, refresh_img, file, rect) = command_img_names(screen, new_img, img, file, rect)
    if hit_key(event, K_F1):
        gl.CALC_ZOOM = 0
        zoom_percent = gl.CURRENT_ZOOM_PERCENT
        real_width = gl.REAL_WIDTH
        command_help(screen, new_img, file, rect)
        if gl.ESCAPED:
            gl.CURRENT_ZOOM_PERCENT = zoom_percent
            gl.REAL_WIDTH = real_width
        gl.ESCAPED = 0
    if hit_key(event, K_F2):
        rect = command_640x480(new_img, file, rect)
        normal_cursor()
    if hit_key(event, K_F3):
        rect = command_800x600(new_img, file, rect)
        normal_cursor()
    if hit_key(event, K_F4):
        rect = command_1024x768(new_img, file, rect)
        normal_cursor()
    if hit_key(event, K_F5):
        rect = command_1280x1024(new_img, file, rect)
        normal_cursor()
    if hit_key(event, K_F6):
        screen = command_fullscreen()
        rect = get_center(screen, new_img)
        my_update_screen(new_img, rect, file)
        normal_cursor()
    if event.type == KEYDOWN:  # alt+enter code
        mods = pygame.key.get_mods()
        if ((event.key == K_RETURN and mods & KMOD_ALT)):
            screen = command_fullscreen()
            rect = get_center(screen, new_img)
            my_update_screen(new_img, rect, file)
    if hit_key(event, K_F7):
        gl.USING_SCROLL_MENU = 1
        gl.CALC_ZOOM = 0
        zoom_percent = gl.CURRENT_ZOOM_PERCENT
        real_width = gl.REAL_WIDTH
        rect = command_show_res_modes(screen, new_img, file, rect)
        gl.CURRENT_ZOOM_PERCENT = zoom_percent
        gl.REAL_WIDTH = real_width
        gl.USING_SCROLL_MENU = 0
        my_update_screen(new_img, rect, file)
        normal_cursor()
    if hit_key(event, K_s):
        (new_img, img, refresh_img, rect) = command_shuffle(
            new_img, img, screen, rect, file)
    if hit_key(event, K_u):
        (new_img, img, refresh_img, rect,
         file) = command_unshuffle(new_img, img, screen, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_r and mods & KMOD_CTRL == 0:
            if gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                gl.CALC_ZOOM = 0
                (new_img, img, rect) = command_rotate_right(new_img, screen, file, rect)
            else:
                print "Can't rotate. Out of memory."
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_r and mods & KMOD_CTRL:
            if gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                gl.CALC_ZOOM = 0
                (new_img, img, rect) = command_rotate_left(new_img, screen, file, rect)
            else:
                print "Can't rotate. Out of memory."
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_p and mods & KMOD_CTRL == 0:
            command_add_to_play_list(screen, gl.files[file])
            gl.SORT_HIT = 0
            my_update_screen(new_img, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_p and mods & KMOD_CTRL:
            (new_img, new_img, new_img, file, rect) = command_play_list_options(screen, file)
            gl.SORT_HIT = 0
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_x and mods & KMOD_CTRL == 0:
            command_hide(screen, new_img, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_x and mods & KMOD_CTRL:
            if get_config_val("ON_THE_FLY_EXIF_STATUS_BAR") == 1:
                gl.ON_FLY_EXIF_STATUS_BAR ^= 1
            gl.TOGGLE_STATUS_BAR ^= 1
            my_update_screen(new_img, rect, file)
            normal_cursor()
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_MINUS or event.key == K_KP_MINUS) and mods & KMOD_CTRL == 0:
            if gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                try:
                    (new_img, img, rect) = command_zoom_out(new_img, img, file, rect, "normal")
                except:
                    print 'Out of memory.'
            else:
                print "Can't zoom out. Out of memory. Resetting the image."
                gl.SKIP_FIT = 1
                gl.ZOOM_EXP = 0
                wait_cursor()
                new_img = load_img(gl.files[file])
                img = refresh_img = new_img
                rect = get_center(screen, new_img)
                my_update_screen(new_img, rect, file)
                normal_cursor()
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_MINUS or event.key == K_KP_MINUS) and mods & KMOD_CTRL:
            try:
                (new_img, img, rect) = command_zoom_out(new_img, img, file, rect, "double")
            except:
                print 'Out of memory.'
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_EQUALS or event.key == K_KP_PLUS) and mods & KMOD_CTRL == 0:
            # Zoom in only if there seems to be enough memory
            if gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                try:  # triple zoom crash protection
                    (new_img, img, rect) = command_zoom_in(new_img, img, file, rect, "normal")
                except:
                    print 'Zoom max reached.'
            else:
                print 'Zoom max reached.'
    if event.type == KEYDOWN:  # ctrl+'+' code
        mods = pygame.key.get_mods()
        if (event.key == K_EQUALS or event.key == K_KP_PLUS) and (mods & KMOD_CTRL and mods & KMOD_ALT == 0):
            if gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                try:
                    (new_img, img, rect) = command_zoom_in(new_img, img, file, rect, "double")
                except:
                    print 'Zoom max reached.'
            else:
                print 'Zoom max reached.'
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_EQUALS or event.key == K_KP_PLUS) and (mods & KMOD_CTRL and mods & KMOD_ALT):
            try:
                (new_img, img, rect) = command_zoom_in(new_img, new_img, file, rect, "scale2x")
            except:
                print 'Zoom max. Out of memory.'
    if hit_key(event, K_DOWN):
        pygame.event.set_allowed(MOUSEMOTION)
        gl.MY_KEYDOWN = 1
        gl.HAND_TOOL = 1
    if hit_key(event, K_UP):
        pygame.event.set_allowed(MOUSEMOTION)
        gl.MY_KEYUP = 1
        gl.HAND_TOOL = 1
    if hit_key(event, K_RIGHT):
        pygame.event.set_allowed(MOUSEMOTION)
        gl.MY_KEYRIGHT = 1
        gl.HAND_TOOL = 1
    if hit_key(event, K_LEFT):
        pygame.event.set_allowed(MOUSEMOTION)
        gl.MY_KEYLEFT = 1
        gl.HAND_TOOL = 1
    if hit_key(event, K_HOME):
        pygame.event.set_allowed(MOUSEMOTION)
        command_full_right(rect, last_rect, new_img, file)
        if gl.IMG_BORDER:
            img_border(new_img, rect)
    if hit_key(event, K_END):
        pygame.event.set_allowed(MOUSEMOTION)
        command_full_left(rect, last_rect, new_img, file)
        if gl.IMG_BORDER:
            img_border(new_img, rect)
    if hit_key(event, K_PAGEDOWN):
        pygame.event.set_allowed(MOUSEMOTION)
        command_full_up(rect, last_rect, new_img, file)
        if gl.IMG_BORDER:
            img_border(new_img, rect)
    if hit_key(event, K_PAGEUP):
        pygame.event.set_allowed(MOUSEMOTION)
        command_full_down(rect, last_rect, new_img, file)
        if gl.IMG_BORDER:
            img_border(new_img, rect)
    if hit_key(event, K_m):
        (new_img, img, rect) = command_horiz(new_img, screen, file, rect)
    if hit_key(event, K_v):
        (new_img, img, rect) = command_vert(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_TAB and mods & KMOD_CTRL) or hit_key(event, K_SPACE) or\
                hit_key(event, K_n):
            (new_img, img, refresh_img, file,
             rect) = command_next_img(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (hit_key(event, K_BACKSPACE) or hit_key(event, K_b)) and mods & KMOD_CTRL == 0:
            (new_img, img, refresh_img, file,
             rect) = command_prev_img(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if event.key == K_b and mods & KMOD_CTRL:
            gl.IMG_BORDER ^= 1
            my_update_screen(new_img, rect, file)
            normal_cursor()
    if hit_key(event, K_o):
        (screen, before_winsize, not_accepted) = adjust_screen(screen)
        new_img = open_url(screen, img)
        gl.URL_ERROR = False
        file = 0
        img = refresh_img = new_img
        screen = restore_screen(
            screen, before_winsize, not_accepted, new_img, file, rect)
        rect = get_center(screen, new_img)
        my_update_screen(new_img, rect, file)
        normal_cursor()
    if hit_key(event, K_ESCAPE):
        (new_img, img, rect, file) = command_refresh(refresh_img, screen, gl.files, file)
        my_update_screen(new_img, rect, file)
    if event.type == KEYDOWN:  # Ctrl+0 (Fit to Window) code
        mods = pygame.key.get_mods()
        if event.key == K_0 and mods & KMOD_CTRL:
            gl.RESET_FIT = 0
            gl.SCALE_UP = 1
            if gl.FIT_IMAGE_VAL:
                gl.RESET_FIT = 0
            else:
                gl.RESET_FIT = 1
                gl.FIT_IMAGE_VAL = 1
            wait_cursor()
            new_img = load_img(gl.files[file])
            img = refresh_img = new_img
            rect = get_center(screen, new_img)
            my_update_screen(new_img, rect, file)
            if gl.RESET_FIT == 1:
                gl.FIT_IMAGE_VAL = 0
            normal_cursor()
    if event.type == KEYDOWN:  # Alt+0 (Actual Size) code
        mods = pygame.key.get_mods()
        if ((event.key == K_0 and mods & KMOD_ALT)):
            gl.SKIP_FIT = 1
            gl.ZOOM_EXP = 0
            wait_cursor()
            new_img = load_img(gl.files[file])
            img = refresh_img = new_img
            rect = get_center(screen, new_img)
            my_update_screen(new_img, rect, file)
            normal_cursor()
    if hit_key(event, K_1) or hit_key(event, K_KP1):
        #gl.SCALE_UP = 1
        if gl.FIT_IMAGE_VAL:
            gl.FIT_IMAGE_VAL = 0
            gl.RESET_FIT = 1
        else:
            gl.SKIP_FIT = 0
            gl.FIT_IMAGE_VAL = 1
            gl.RESET_FIT = 0
        wait_cursor()
        if new_img.get_width() > screen.get_width() or new_img.get_height() > screen.get_height() or gl.RESET_FIT:
            new_img = load_img(gl.files[file])
            img = refresh_img = new_img
            rect = get_center(screen, new_img)
        if gl.RESET_FIT:
            gl.FIT_IMAGE_VAL = 0
        my_update_screen(new_img, rect, file)
        normal_cursor()
    if hit_key(event, K_f):
        (new_img, img, refresh_img, file,
         rect) = command_first_img(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_l and mods & KMOD_CTRL == 0):
            (new_img, img, refresh_img, file,
             rect) = command_last_img(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_l and mods & KMOD_CTRL):
            gl.PERSISTENT_ZOOM_VAL ^= 1
            if not gl.PERSISTENT_ZOOM_VAL:
                gl.ZOOM_EXP = 0
            my_update_screen(new_img, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_DELETE and mods & KMOD_CTRL == 0) or\
                (event.key == K_KP_PERIOD and mods & KMOD_CTRL == 0) or\
                (event.key == K_w and mods & KMOD_CTRL):
            (new_img, img, refresh_img, file,
             rect) = command_remove_img(new_img, screen, file, rect)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_DELETE and mods & KMOD_CTRL) or\
           (event.key == K_KP_PERIOD and mods & KMOD_CTRL):
            fn = gl.files[file]
            answer = get_confirmation(
                screen, "Delete %s? [y/n]" % basename(fn))
            if answer == "yes":
                (new_img, img, refresh_img, file, rect) = command_delete_img(
                    fn, new_img, screen, file, rect)
            my_update_screen(new_img, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_w and mods & KMOD_CTRL == 0) and hit_key(event, K_w):
            (new_img, img, refresh_img, file,
             rect) = my_slideshow(new_img, img, screen, file, rect)
            my_update_screen(new_img, rect, file)
    if hit_key(event, K_e):
        (screen, before_winsize, not_accepted) = adjust_screen(screen)
        gl.USING_SCROLL_MENU = 1
        zoom_percent = gl.CURRENT_ZOOM_PERCENT
        real_width = gl.REAL_WIDTH
        (new_img, img, refresh_img, file,
         rect) = command_edit_menu(screen, file, new_img, rect)
        if gl.ESCAPED:
            gl.CURRENT_ZOOM_PERCENT = zoom_percent
            gl.REAL_WIDTH = real_width
        screen = restore_screen(screen, before_winsize, not_accepted, new_img, file, rect)
        my_update_screen(new_img, rect, file)
        gl.ESCAPED = 0
        gl.USING_SCROLL_MENU = 0
    if hit_key(event, K_z):
        transparency = 0
        if not gl.TOGGLE_TRANSPARENT:
            gl.TOGGLE_TRANSPARENT = 1
            transparency = 1
        command_verbose_info(screen, new_img, rect, file)
        if transparency:
            gl.TOGGLE_TRANSPARENT = 0
        my_update_screen(new_img, rect, file)
    if hit_key(event, K_4):
        gl.CALC_ZOOM = 0
        zoom_percent = gl.CURRENT_ZOOM_PERCENT
        real_width = gl.REAL_WIDTH
        (file, new_img, img, refresh_img, rect) = command_four(screen, file, new_img)
        if gl.ESCAPED:
            gl.CURRENT_ZOOM_PERCENT = zoom_percent
            gl.REAL_WIDTH = real_width
        gl.ESCAPED = 0
        my_update_screen(new_img, rect, file)
        normal_cursor()
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_t and mods & KMOD_CTRL):
            gl.TOGGLE_TRANSPARENT ^= 1
            my_update_screen(new_img, rect, file)
    if event.type == KEYDOWN:
        mods = pygame.key.get_mods()
        if (event.key == K_t and mods & KMOD_CTRL == 0) and hit_key(event, K_t):
            gl.THUMBING = 1
            gl.CALC_ZOOM = 0
            zoom_percent = gl.CURRENT_ZOOM_PERCENT
            real_width = gl.REAL_WIDTH
            (new_img, img, refresh_img, file,
             rect) = command_thumbs(screen, new_img, file)
            if gl.ESCAPED:
                gl.CURRENT_ZOOM_PERCENT = zoom_percent
                gl.REAL_WIDTH = real_width
            gl.ESCAPED = 0
            gl.THUMBING = 0
            my_update_screen(new_img, rect, file)
    if hit_key(event, K_h):
        pygame.event.set_allowed(MOUSEMOTION)
        gl.HAND_TOOL = 1
        drag_hand_cursor()
    if gl.REMOTE and not gl.ALREADY_DOWNLOADED:
        if hit_key(event, K_a):
            save_remote_img(screen, file)

    gfx = {'screen': screen, 'rect': rect, 'new_img': new_img, 'img': img, 'refresh_img': refresh_img, 'file': file}
    return (gfx, last_rect)
Ejemplo n.º 17
0
Archivo: edit.py Proyecto: rkulla/imgv
def check_boxes(screen, positions, opt):
    # positions[0]=hpos, positions[1]=checked_wpos, positions[2]=unchecked_wpos
    # draw checked box:
    checked_img = load_img(gl.CHECKED_BOX, False)
    checked_rect = checked_img.get_rect()
    if opt == "transparent_text":
        checked_rect[0] = (positions[1], positions[2])[get_config_val("TRANSPARENT_TEXT")]
    elif opt == "main_statusbar":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("MAIN_STATUS_BAR")]
    elif opt == "four_statusbars":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("FOUR_AT_A_TIME_STATUS_BARS")]
    elif opt == "exif_statusbar":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("ON_THE_FLY_EXIF_STATUS_BAR")]
    elif opt == "thumb_statusbars":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("THUMBNAIL_STATUS_BARS")]
    elif opt == "image_border":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("IMAGE_BORDER")]
    elif opt == "dirnum_colors":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("COLOR_DIRECTORY_NUMBERS")]
    elif opt == "lock_zoom":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("PERSISTENT_ZOOM")]
    elif opt == "wrap":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("WRAP")]
    elif opt == "wrap_slideshow":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("WRAP_SLIDESHOW")]
    elif opt == "start_fullscreen":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("FULLSCREEN")]
    elif opt == "thumb_border":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("THUMB_BORDER")]
    elif opt == "show_movies":
        checked_rect[0] = (positions[2], positions[1])[get_config_val("MOVIES")]
    checked_rect[1] = positions[0]
    screen.blit(checked_img, checked_rect)
    update(checked_rect)
    # draw unchecked box:
    unchecked_img = load_img(gl.UNCHECKED_BOX, False)
    unchecked_rect = unchecked_img.get_rect()
    if opt == "transparent_text":
        unchecked_rect[0] = (positions[2], positions[1])[get_config_val("TRANSPARENT_TEXT")]
    elif opt == "main_statusbar":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("MAIN_STATUS_BAR")]
    elif opt == "four_statusbars":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("FOUR_AT_A_TIME_STATUS_BARS")]
    elif opt == "exif_statusbar":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("ON_THE_FLY_EXIF_STATUS_BAR")]
    elif opt == "thumb_statusbars":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("THUMBNAIL_STATUS_BARS")]
    elif opt == "image_border":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("IMAGE_BORDER")]
    elif opt == "dirnum_colors":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("COLOR_DIRECTORY_NUMBERS")]
    elif opt == "lock_zoom":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("PERSISTENT_ZOOM")]
    elif opt == "wrap":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("WRAP")]
    elif opt == "wrap_slideshow":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("WRAP_SLIDESHOW")]
    elif opt == "start_fullscreen":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("FULLSCREEN")]
    elif opt == "thumb_border":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("THUMB_BORDER")]
    elif opt == "show_movies":
        unchecked_rect[0] = (positions[1], positions[2])[get_config_val("MOVIES")]
    unchecked_rect[1] = positions[0]
    screen.blit(unchecked_img, unchecked_rect)
    update(unchecked_rect)
    return (checked_rect, unchecked_rect)
Ejemplo n.º 18
0
from torch.autograd import Variable
from torchvision import transforms
from load_img import load_img, show_img
from run_code import run_style_transfer

style_img = load_img('./picture/style0.png')
style_img = Variable(style_img)
content_img = load_img('./picture/content1.jpg')
content_img = Variable(content_img)

input_img = content_img.clone()
out = run_style_transfer(content_img, style_img, input_img, num_epoches=80)

show_img(out.cpu())

save_pic = transforms.ToPILImage()(out.cpu().squeeze(0))

save_pic.save('./picture/saved_picture.png')
Ejemplo n.º 19
0
from torchvision import transforms
from run_code import run_style_transfer
from load_img import load_img, show_img
from torch.autograd import Variable

style_img = load_img('./picture/style.png')
style_img = Variable(style_img)
content_img = load_img('./picture/cat.jpg')
content_img = Variable(content_img)

input_img = content_img.clone()

out = run_style_transfer(content_img, style_img, input_img, num_epoches=200)

show_img(out)
save_pic = transforms.ToPILImage()(out.squeeze(0))
save_pic.save('./picture/saved_picture.png')
Ejemplo n.º 20
0
def extract_features(path_rgb_img,
                     path_ir_img=None,
                     patch_size=5,
                     img_size=(1., 1.),
                     n_threads=4):

    print "Loading images.."
    pil_rgb_img = load_img(path_rgb_img)
    size_rgb = pil_rgb_img.size
    new_size = (0, 0, int(size_rgb[0] * img_size[0]),
                int(size_rgb[1] * img_size[1]))
    pil_rgb_img = pil_rgb_img.crop(new_size)
    pil_rgb_img_grey = pil_rgb_img.convert("L")

    if path_ir_img:
        pil_ir_img = load_img(path_ir_img)
        size_ir = pil_ir_img.size
        new_size = (0, 0, int(size_ir[0] * img_size[0]),
                    int(size_ir[1] * img_size[1]))
        pil_ir_img = pil_ir_img.crop(new_size)
        pil_ir_img_grey = pil_ir_img.convert("L")

        np_ir_img = np.array(pil_ir_img)
        np_ir_img_grey = np.array(pil_ir_img_grey)
    else:
        pil_ir_img = None
        pil_ir_img_grey = None

        np_ir_img = None
        np_ir_img_grey = None

    np_rgb_img = np.float32(np.array(pil_rgb_img))
    np_rgb_img_grey = np.float32(np.array(pil_rgb_img_grey))

    print "shape of np_rgb_img : "
    for i in np_rgb_img.shape:
        print i

    print "Computing gradients.."
    dx_rgb_grey = filters.sobel(np_rgb_img_grey, 1)
    dy_rgb_grey = filters.sobel(np_rgb_img_grey, 0)
    grad_magn = np.sqrt(dx_rgb_grey**2 + dy_rgb_grey**2)
    grad_orient = np.arctan2(dy_rgb_grey, dx_rgb_grey)

    max_grad_orient = np.max(grad_orient)
    grad_orient = grad_orient / max_grad_orient

    max_grad_magn = np.max(grad_magn)
    grad_magn = grad_magn / max_grad_magn
    grad_threshold = 0.4  # arbitrary threshold to detect edges

    print "Extracting other features.."
    border = int(patch_size / 2)

    old_time = int(1000 * time())

    # create n_threads processes that will run the run_extract_features function above

    processes = []
    feat_files_queues = [
    ]  # contains for each thread, the name of the output file with the result
    slice_width = int(len(np_rgb_img) / n_threads)
    for i in range(0, n_threads - 1):
        s, e = i * slice_width, (i + 1) * slice_width
        feat_files_queues.append(Queue())
        if np_ir_img:
            args = (i + 1, np_rgb_img[s:e], np_ir_img[s:e], grad_magn[s:e],
                    grad_orient[s:e], grad_threshold, border,
                    feat_files_queues[-1])
        else:
            args = (i + 1, np_rgb_img[s:e], None, grad_magn[s:e],
                    grad_orient[s:e], grad_threshold, border,
                    feat_files_queues[-1])
        p = Process(target=run_extract_features, args=args)
        processes.append(p)
        p.start()

    # handle last thread
    s = (n_threads - 1) * slice_width
    feat_files_queues.append(Queue())
    if np_ir_img:
        args = (n_threads, np_rgb_img[s:], np_ir_img[s:], grad_magn[s:],
                grad_orient[s:], grad_threshold, border, feat_files_queues[-1])
    else:
        args = (n_threads, np_rgb_img[s:], None, grad_magn[s:],
                grad_orient[s:], grad_threshold, border, feat_files_queues[-1])
    p = Process(target=run_extract_features, args=args)
    processes.append(p)
    p.start()

    feat_files = []
    for q in feat_files_queues:
        while q.empty():
            sleep(1)  # wait 1 second
        filename = q.get()
        feat_files.append(filename)

    time_diff = int(1000 * time()) - old_time

    height = min(len(np_rgb_img),
                 len(np_ir_img)) if np_ir_img else len(np_rgb_img)
    #print "final feats has same size than begin: " , len(feats) == height
    #print "Total time: %i" % time_diff

    # re-create the original shape for the complete set of features
    feats = np.vstack(map(lambda x: np.load(x), feat_files))

    return feats
Ejemplo n.º 21
0
Archivo: thumb.py Proyecto: rkulla/imgv
def show_thumbs(screen, SPACER, x, i, j, place, marker, font, font_size):
    # show thumbnails with correct aspect ratio
    if place < len(gl.files):
        img_name = gl.files[place]
        img = load_img(img_name, 0)
        (img_width, img_height) = img.get_size()

        splitval = None
        if gl.THUMB_VAL.find("x") != -1:
            splitval = "x"
        elif gl.THUMB_VAL.find("X") != -1:
            splitval = "X"
        if splitval != None:
            (square_width, square_height) = int(gl.THUMB_VAL.split(splitval)[0]), int(gl.THUMB_VAL.split(splitval)[1])

        small_img = img
        if img_width > img_height:
            if (
                (not img_width < square_width and not img_height < square_height)
                or (img_width > square_width)
                or (img_height > square_height)
                or (img_width > square_width and img_height > square_height)
            ):
                r = float(img_width) / float(img_height)
                new_width = square_width
                new_height = int(new_width / r)
                scale_val = new_width, new_height
                if scale_val[0] > square_width or scale_val[1] > square_height:
                    scale_val = int(new_width / 1.32), int(new_height / 1.32)
                if scale_val[0] > square_width or scale_val[1] > square_height:
                    if square_width >= 200 or square_height >= 200:
                        scale_val = int(scale_val[0] / 2), int(scale_val[1] / 2)
                small_img = pygame.transform.scale(img, scale_val)
        if img_width < img_height:
            if (
                (not img_width < square_width and not img_height < square_height)
                or (img_width > square_width)
                or (img_height > square_height)
                or (img_width > square_width and img_height > square_height)
            ):
                r = float(img_height) / float(img_width)
                new_height = square_height
                new_width = int(new_height / r)
                scale_val = new_width, new_height
                if scale_val[0] > square_width or scale_val[1] > square_height:
                    scale_val = int(new_width / 2), int(new_height / 2)
                else:
                    scale_val = new_width, new_height
                small_img = pygame.transform.scale(img, scale_val)
        if img_width == img_height:
            if (
                (not img_width < square_width and not img_height < square_height)
                or (img_width > square_width)
                or (img_height > square_height)
                or (img_width > square_width and img_height > square_height)
            ):
                r = float(img_width) / float(img_height)
                new_height = square_height
                new_width = square_width
                scale_val = new_width, new_height
                small_img = pygame.transform.scale(img, scale_val)
        (img_width, img_height) = small_img.get_size()

        if (i + square_width) >= screen.get_width():
            i = SPACER
            j = j + (square_height + SPACER)
        if (j + square_height) >= screen.get_height():
            i, j = SPACER, SPACER
            gl.MAX_THUMBS = marker  # figure out how many thumbs fit on a page
            set_caption("imgv")
            if not gl.MAX_THUMBS_SET:
                gl.MAX_THUMBS_SET = gl.MAX_THUMBS
            return (x, i, j, place, 1, marker)

        # draw individual thumbnail backgrounds:
        paint_screen(gl.THUMB_BG_COLOR_VAL, (i, j, square_width, square_height))

        if gl.THUMB_BORDER_VAL:
            # draw borders:
            left_line = line(screen, gl.THUMB_BORDER_COLOR, (i - 1, j - 1), (i - 1, square_height + j))
            right_line = line(
                screen, gl.THUMB_BORDER_COLOR, (i + square_width, j), (i + square_width, square_height + j)
            )
            top_line = line(screen, gl.THUMB_BORDER_COLOR, (i, j - 1), ((i + square_width), j - 1))
            bottom_line = line(
                screen, gl.THUMB_BORDER_COLOR, (i, square_height + j), ((i + square_width), square_height + j)
            )
            update(left_line), update(top_line), update(right_line), update(bottom_line)

        thumb_name = check_truncate(square_width, basename(img_name))
        wpos = i + ((square_width / 2) - (font.size(thumb_name)[0] / 2))

        small_img_rect = small_img.get_rect()
        small_img_rect[0] = i
        small_img_rect[1] = j
        x.append((small_img_rect, img_name))
        screen.blit(small_img, (i, j))
        update(small_img_rect)
        i = i + (square_width + SPACER)
        place = place + 1
        marker = marker + 1

        if gl.THUMB_STATUS_BARS:
            # display thumbnail's filename:
            show_message(thumb_name, (wpos, j + square_height - 12), font_size, ("bold"))

    if place >= len(gl.files):
        return (x, 0, 0, place, 1, marker)
    return (x, i, j, place, 0, marker)
Ejemplo n.º 22
0
from torchvision import transforms
from run_code import run_style_transfer
from load_img import load_img, show_img
from torch.autograd import Variable

style_img = load_img('./picture/style2.jpg')
style_img = Variable(style_img).cpu()
content_img = load_img('./picture/content2.jpg')
content_img = Variable(content_img).cpu()

input_img = content_img.clone()

out = run_style_transfer(content_img, style_img, input_img, num_epoches=200)

show_img(out.cpu())
save_pic = transforms.ToPILImage()(out.cpu().squeeze(0))
save_pic.save('./picture/saved_picture2.jpg')
Ejemplo n.º 23
0

if __name__ == '__main__':
    cfg_from_file(default_cfg)
    caffe.set_device(GPU_ID)
    caffe.set_mode_gpu()
    net = caffe.Net(default_prototxt, default_model, caffe.TEST)

    print 'Processing img ...'
    image_index = get_image_index(image_set_file)
    im_num = len(image_index)
    vals = np.empty((im_num, ))
    for j in xrange(im_num):
        fn = os.path.join(data_dir, image_index[j])
        print fn, '\t',
        im = load_img(fn)
        im -= cfg.PIXEL_MEANS

        data = np.zeros((1, 3, im.shape[0], im.shape[1]), dtype=np.float32)
        for chn in range(3):
            data[0, chn, :, :] = im

        blobs_out = net.forward(data=data)
        vals[j] = blobs_out['reg_value']
        print vals[j]

    fn = os.path.join(sys.path[0], 'slice_scores.txt')
    with open(fn, 'w') as f:
        f.writelines(
            [a + '\t' + str(b) + '\r\n' for a, b in zip(image_index, vals)])
    print 'Written to', fn
Ejemplo n.º 24
0
def previous_img(file, old_img, screen):
    img = old_img
    img = load_img(gl.files[file], screen)
    return img    
Ejemplo n.º 25
0
def next_img(file, old_img, screen):
    img = old_img
    if file < len(gl.files):
        img = load_img(gl.files[file], screen)
    transitional_fx(screen, img)
    return img
Ejemplo n.º 26
0
def extract_features(path_rgb_img, path_ir_img = None, patch_size=5, img_size=(1.,1.), n_threads=4):

    print "Loading images.."
    pil_rgb_img = load_img(path_rgb_img)
    size_rgb = pil_rgb_img.size
    new_size = (0, 0, int(size_rgb[0] * img_size[0]), int(size_rgb[1] * img_size[1]))
    pil_rgb_img = pil_rgb_img.crop(new_size)
    pil_rgb_img_grey = pil_rgb_img.convert("L")

    if path_ir_img:
        pil_ir_img = load_img(path_ir_img)
        size_ir = pil_ir_img.size
        new_size = (0, 0, int(size_ir[0] * img_size[0]), int(size_ir[1] * img_size[1]))
        pil_ir_img = pil_ir_img.crop(new_size)
        pil_ir_img_grey = pil_ir_img.convert("L")

        np_ir_img = np.array(pil_ir_img)
        np_ir_img_grey = np.array(pil_ir_img_grey)
    else:
        pil_ir_img = None
        pil_ir_img_grey = None

        np_ir_img = None
        np_ir_img_grey = None


    np_rgb_img = np.float32(np.array(pil_rgb_img))
    np_rgb_img_grey = np.float32(np.array(pil_rgb_img_grey))

    print "shape of np_rgb_img : " 
    for i in np_rgb_img.shape:
        print i


    print "Computing gradients.."
    dx_rgb_grey = filters.sobel(np_rgb_img_grey, 1)
    dy_rgb_grey = filters.sobel(np_rgb_img_grey, 0)
    grad_magn = np.sqrt(dx_rgb_grey**2 + dy_rgb_grey**2)
    grad_orient = np.arctan2(dy_rgb_grey, dx_rgb_grey)

    max_grad_orient = np.max(grad_orient)
    grad_orient = grad_orient / max_grad_orient


    max_grad_magn = np.max(grad_magn)
    grad_magn = grad_magn / max_grad_magn
    grad_threshold = 0.4 # arbitrary threshold to detect edges

    print "Extracting other features.."
    border = int(patch_size / 2)


    old_time = int(1000 * time())

    # create n_threads processes that will run the run_extract_features function above

    processes = []
    feat_files_queues = [] # contains for each thread, the name of the output file with the result
    slice_width = int(len(np_rgb_img) / n_threads)
    for i in range(0, n_threads-1):
        s,e = i * slice_width, (i+1) * slice_width
        feat_files_queues.append(Queue())
        if np_ir_img:
            args = (i+1, np_rgb_img[s:e], np_ir_img[s:e], grad_magn[s:e], grad_orient[s:e], grad_threshold, border,feat_files_queues[-1])
        else:
            args = (i+1, np_rgb_img[s:e], None, grad_magn[s:e], grad_orient[s:e], grad_threshold, border,feat_files_queues[-1])
        p = Process(target=run_extract_features, args=args)
        processes.append(p)
        p.start()

    # handle last thread
    s = (n_threads - 1) * slice_width
    feat_files_queues.append(Queue())
    if np_ir_img:
        args = (n_threads, np_rgb_img[s:], np_ir_img[s:], grad_magn[s:], grad_orient[s:], grad_threshold, border, feat_files_queues[-1])
    else:
        args = (n_threads, np_rgb_img[s:], None, grad_magn[s:], grad_orient[s:], grad_threshold, border, feat_files_queues[-1])
    p = Process(target=run_extract_features, args=args)
    processes.append(p)
    p.start()


    feat_files = []
    for q in feat_files_queues:
        while q.empty():
            sleep(1) # wait 1 second
        filename = q.get()
        feat_files.append(filename)

    time_diff = int(1000 * time()) - old_time

    height = min(len(np_rgb_img), len(np_ir_img)) if np_ir_img else len(np_rgb_img)
    #print "final feats has same size than begin: " , len(feats) == height
    #print "Total time: %i" % time_diff

    # re-create the original shape for the complete set of features
    feats = np.vstack(map(lambda x: np.load(x), feat_files))

    return feats
Ejemplo n.º 27
0
def main():
    pygame.time.delay(5) # to make start_timer() work initially
    start = start_timer()
    num_imgs = len(gl.files) 
    pygame.init() # needed for Mac OSX?
    init_screen()
    wait_cursor()
    screen = pygame.display.set_mode(gl.DEFAULT_RES, RESIZABLE)
    set_caption(gl.TITLE)
    if gl.REMOTE == 1:
        show_message(screen, "Loading image. Please wait..", 34, 42)
    file = 0
    if num_imgs < 1:
        gl.files = [gl.IMGV_LOGO]
        num_imgs = 1 
        img = load_img(gl.files[file], screen)
    else:
        img = load_img(gl.files[file], screen)
    wait_cursor()
    img_width = img.get_width()
    img_height = img.get_height()
    refresh_img = img
    new_img = img
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    if gl.START_FULLSCREEN:
        command_fullscreen(screen, new_img, file, num_imgs, rect)
        my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    # start with menu open
    screen_width = screen.get_width()
    screen_height = screen.get_height()
    new_img_width = new_img.get_width()
    new_img_height = new_img.get_height()
    (refresh_img, screen, file, num_imgs, new_img, img,\
    new_img_width, new_img_height, rect) = command_main_menu(refresh_img, screen,\
    file, len(gl.files), rect, new_img, img, new_img_width, new_img_height, ns)
    minus1 = minus2 = 0

    # main loop
    while 1:
        event = pygame.event.poll()
        pygame.time.wait(1) # so pygame doesn't use 100% CPU
        cursor = pygame.mouse.get_pos()
        last_rect = Rect(rect)
        screen_width = screen.get_width()
        screen_height = screen.get_height()
        new_img_width = new_img.get_width()
        new_img_height = new_img.get_height()

        # drag image code:
        if gl.HAND_TOOL:
            if left_click(event): # calculate drag coordinates:
                if gl.IMG_BORDER:
                    border_fix(screen) # erase the current border
                grab_hand_cursor()
                minus1 = cursor[0] - rect[0]
                minus2 = cursor[1] - rect[1]
                gl.DO_DRAG = 1
            if event.type == MOUSEMOTION and gl.DO_DRAG: # move the image when dragged:
                grab_hand_cursor()
                rect[0] = cursor[0] - minus1 
                rect[1] = cursor[1] - minus2
                screen.fill(gl.IMGV_COLOR, last_rect)
                screen.blit(new_img, rect)
                update(rect.union(last_rect))
            if event.type == MOUSEBUTTONUP: # released mouse button, redisplay status bars:
                drag_hand_cursor()
                my_update_screen(new_img, screen, rect, file, num_imgs, ns)
                gl.DO_DRAG = 0

        if event.type == VIDEORESIZE:#
             print 'resize imgv.py'#
             screen = pygame.display.set_mode(event.dict['size'], RESIZABLE)
             rect = get_center(screen, new_img)
             my_update_screen(new_img, screen, rect, file, num_imgs, ns)
        if event.type == KEYDOWN:
            gl.HAND_TOOL = 0
            if event.key not in (K_DOWN, K_UP, K_RIGHT, K_LEFT):
                normal_cursor() # stop displaying hand tool
            (screen, rect, new_img, img, refresh_img, file, num_imgs,\
            screen_width, screen_height, new_img_width, new_img_height, last_rect) =\
            handle_keyboard(event, screen, rect, new_img, img, refresh_img, file, len(gl.files),\
            screen_width, screen_height, new_img_width, new_img_height, last_rect, ns)
        if event.type == KEYUP:
             stop_auto_repeat()
        check_quit(event)

        if event.type == MOUSEBUTTONDOWN: # open main menu:
            if right_click(event):
                gl.HAND_TOOL = 0
                (refresh_img, screen, file, num_imgs, new_img, img,\
                new_img_width, new_img_height, rect) = command_main_menu(refresh_img, screen,\
                file, num_imgs, rect, new_img, img, new_img_width, new_img_height, ns)
        if (gl.KEEP_MENU_OPEN == "1" and gl.COUNT_CLICKS == 1) or gl.JUST_RESIZED: # Re-open the purposely closed window that frees up RAM
            gl.COUNT_CLICKS = 0
            gl.JUST_RESIZED = 0
            (refresh_img, screen, file, num_imgs, new_img, img,\
            new_img_width, new_img_height, rect) = command_main_menu(refresh_img, screen,\
            file, num_imgs, rect, new_img, img, new_img_width, new_img_height, ns)
        start_auto_repeat(rect, last_rect, new_img, screen, file, len(gl.files), screen_width, screen_height, event)
    clean_screen()
Ejemplo n.º 28
0
def command_main_menu(refresh_img, screen, file, num_imgs, rect, new_img, img, new_img_width, new_img_height, ns):
    menu_items = []
    i = 23
    cursor = pygame.mouse.get_pos()
    screen_width = screen.get_width()
    screen_height = screen.get_height()
    if screen_height < 600:
        font_size = 10
        gl.MENU_DIVIDER_AMOUNT = 12
    else:
        gl.MENU_DIVIDER_AMOUNT = 14
        font_size = 11
    font = pygame.font.Font(gl.FONT_NAME, font_size)
    font.set_bold(1)
    if gl.MENU_POS == -1:
        gl.MENU_POS = cursor[0]
    main_menu_fg(screen, font, i, menu_items)
    normal_cursor()
    last_rect = Rect(rect)
    new_img_width = new_img.get_width()
    new_img_height = new_img.get_height()
    if gl.REMOTE and not gl.ALREADY_DOWNLOADED:
        download_rect = imgv_button(screen, " Downlo(a)d Image ", None, None, "topright")
    while 1:
        event = pygame.event.poll()
        pygame.time.wait(1)
        check_quit(event)
        cursor2 = pygame.mouse.get_pos()

        if event.type == VIDEORESIZE:#
            gl.JUST_RESIZED = 1
            screen = pygame.display.set_mode(event.dict['size'], RESIZABLE)
            rect = get_center(screen, new_img)
            my_update_screen(new_img, screen, rect, file, len(gl.files))
            return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
        if gl.REMOTE and not gl.ALREADY_DOWNLOADED:
            hover_button(download_rect, cursor2, screen, " Downlo(a)d Image ", None, None, "topright")

        if event.type == KEYDOWN:
            if event.key in (K_c, K_h, K_UP, K_DOWN, K_RIGHT, K_LEFT):
                if event.key != K_c:
                    pygame.event.set_allowed(MOUSEMOTION)
                    gl.HAND_TOOL = 1
                    drag_hand_cursor()
                # close the menu
                gl.MENU_POS = -1
                my_update_screen(new_img, screen, rect, file, len(gl.files))
                if event.key == K_c:
                    normal_cursor()
                return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
            
            (screen, rect, new_img, img, refresh_img, file, num_imgs,\
            screen_width, screen_height, new_img_width, new_img_height, last_rect) =\
            handle_keyboard(event, screen, rect, new_img, img, refresh_img, file, len(gl.files),\
            screen_width, screen_height, new_img_width, new_img_height, last_rect, ns)
            break
        hover_cursor(cursor2, [x[0] for x in menu_items])
        if left_click(event):
            if gl.REMOTE and not gl.ALREADY_DOWNLOADED:
                if download_rect.collidepoint(cursor2):
                    wait_cursor()
                    save_remote_img(screen, file)
                    break
            for it in menu_items:
                if it[0].collidepoint(cursor2):
                    if it[1] == " Next Image ": 
                        (new_img, img, refresh_img, file, rect) = command_next_img(new_img, screen, file, len(gl.files), rect)
                    elif it[1] == " Previous Image ":
                        (new_img, img, refresh_img, file, rect) = command_prev_img(new_img, screen, file, len(gl.files), rect)        
                    elif it[1] == " Directory Browser ":
                        gl.USING_SCROLL_MENU = 1
                        # save current things in case the user ESCAPES out of show_dirs()
                        gl.LAST_DIR = getcwd()
                        last_files = gl.files
                        (last_new_img, last_img, last_refresh_img, last_num_imgs, last_file, last_rect) =\
                        (new_img, img, refresh_img, num_imgs, file, rect)
                        (new_img, img, refresh_img, num_imgs, file, rect) = command_show_dirs(new_img, img, screen, rect,\
                        file, num_imgs)
                        # user ESCAPED from show_dirs, reset last values
                        if gl.ESCAPED:
                            (new_img, img, refresh_img, num_imgs, file, rect) =\
                            (last_new_img, last_img, last_refresh_img, last_num_imgs, last_file, last_rect)
                            chdir(gl.LAST_DIR)
                            gl.files = last_files
                            gl.USING_SCROLL_MENU = 0
                            my_update_screen(new_img, screen, rect, file, num_imgs)
                        else:
                            gl.REFRESH_IMG_COUNT = 0
                        gl.ESCAPED = 0
                        gl.USING_SCROLL_MENU = 0
                    elif it[1] == " Image Browser ":
                        (new_img, img, refresh_img, file, rect) = command_img_names(screen, new_img, img, file,\
                        num_imgs, rect)
                    elif it[1] == " Thumbnails ":
                        gl.THUMBING = 1
                        gl.CALC_ZOOM = 0
                        zoom_percent = gl.CURRENT_ZOOM_PERCENT
                        real_width = gl.REAL_WIDTH
                        (new_img, img, refresh_img, file, rect) = command_thumbs(screen, new_img, file, ns)
                        if gl.ESCAPED:
                            gl.CURRENT_ZOOM_PERCENT = zoom_percent
                            gl.REAL_WIDTH = real_width
                        gl.ESCAPED = 0
                        gl.THUMBING = 0
                        my_update_screen(new_img, screen, rect, file, num_imgs)
                    elif it[1] == " Image Properties ":
                        transparency = 0
                        if not gl.TOGGLE_TRANSPARENT:
                            gl.TOGGLE_TRANSPARENT = 1
                            transparency = 1
                        command_verbose_info(screen, new_img, rect, file, num_imgs)
                        if transparency:
                            gl.TOGGLE_TRANSPARENT = 0
                        my_update_screen(new_img, screen, rect, file, num_imgs)
                    elif it[1] == " Zoom Out ":
                        if int(gl.N_MILLISECONDS) < gl.MAX_ZOOM_MAX_MS and gl.CURRENT_ZOOM_PERCENT< gl.ZOOM_PERCENT_MAX:
                            try:
                                (new_img, img, rect) = command_zoom_out(new_img, new_img_width, new_img_height, img, screen, file, num_imgs, rect, "normal")
                            except:
                                print 'Out of memory.'
                        else:
                            print "Can't zoom out. Out of memory. Resetting the image."
                            gl.SKIP_FIT = 1
                            gl.ZOOM_EXP = 0
                            start = start_timer()
                            wait_cursor()
                            new_img = load_img(gl.files[file], screen)
                            img = refresh_img = new_img
                            rect = get_center(screen, new_img)
                            ns = check_timer(start)
                            my_update_screen(new_img, screen, rect, file, num_imgs, ns)
                            normal_cursor()
                            gl.N_MILLISECONDS = "0" 
                    elif it[1] == " Zoom In ":
                        if int(gl.N_MILLISECONDS) < gl.MAX_ZOOM_MAX_MS and gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                            try: # triple zoom crash protection
                                (new_img, img, rect) = command_zoom_in(new_img, new_img_width, new_img_height, img, screen, gl.files, file, num_imgs, rect, "normal")
                            except:
                                print 'Zoom max reached.'
                        else:
                            print 'Zoom max reached.'
                    elif it[1] == " Fit to Window ":
                        gl.RESET_FIT = 0
                        gl.SCALE_UP = 1
                        if gl.FIT_IMAGE_VAL:
                            gl.RESET_FIT = 0
                        else:
                            gl.RESET_FIT = 1
                            gl.FIT_IMAGE_VAL = 1
                        start = start_timer()
                        wait_cursor()
                        new_img = load_img(gl.files[file], screen)
                        img = refresh_img = new_img
                        rect = get_center(screen, new_img)
                        ns = check_timer(start)
                        my_update_screen(new_img, screen, rect, file, num_imgs, ns)
                        if gl.RESET_FIT == 1:
                            gl.FIT_IMAGE_VAL = 0
                        normal_cursor()
                    elif it[1] == " Lock Zoom ":
                        gl.PERSISTENT_ZOOM_VAL ^= 1
                        if not gl.PERSISTENT_ZOOM_VAL:
                            gl.ZOOM_EXP = 0
                        my_update_screen(new_img, screen, rect, file, num_imgs, ns)
                    elif it[1] == " Actual Size ":
                        gl.SKIP_FIT = 1
                        gl.ZOOM_EXP = 0
                        start = start_timer()
                        wait_cursor()
                        new_img = load_img(gl.files[file], screen)
                        img = refresh_img = new_img
                        rect = get_center(screen, new_img)
                        ns = check_timer(start)
                        my_update_screen(new_img, screen, rect, file, num_imgs, ns)
                        normal_cursor()
                    elif it[1] == " Close Image ":
                        (new_img, img, refresh_img, file, num_imgs, rect) = command_remove_img(new_img, screen, file, rect)
                    elif it[1] == " Rotate Right ":
                        if int(gl.N_MILLISECONDS) < gl.MAX_ZOOM_MAX_MS and gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                            gl.CALC_ZOOM = 0
                            (new_img, img, rect) = command_rotate_right(new_img, screen, file, num_imgs, rect)
                        else:
                            print "Can't rotate. Out of memory."
                    elif it[1] == " Rotate Left ":
                        if int(gl.N_MILLISECONDS) < gl.MAX_ZOOM_MAX_MS and gl.CURRENT_ZOOM_PERCENT < gl.ZOOM_PERCENT_MAX:
                            gl.CALC_ZOOM = 0
                            (new_img, img, rect) = command_rotate_left(new_img, screen, file, num_imgs, rect)
                        else:
                            print "Can't rotate. Out of memory."
                    elif it[1] == " Four at a Time ":
                        gl.CALC_ZOOM = 0
                        zoom_percent = gl.CURRENT_ZOOM_PERCENT
                        real_width = gl.REAL_WIDTH
                        (file, new_img, img, refresh_img, rect) = command_four(screen, file, new_img, ns)
                        if gl.ESCAPED:
                            gl.CURRENT_ZOOM_PERCENT = zoom_percent
                            gl.REAL_WIDTH = real_width
                        gl.ESCAPED = 0
                        my_update_screen(new_img, screen, rect, file, num_imgs)
                        normal_cursor()
 #                   elif it[1] == " Resize Options ":##
 #                       gl.USING_SCROLL_MENU = 1
 #                       gl.CALC_ZOOM = 0
 #                       zoom_percent = gl.CURRENT_ZOOM_PERCENT
 #                       real_width = gl.REAL_WIDTH
 #                       rect = command_show_res_modes(screen, new_img, file, num_imgs, rect)
 #                       gl.CURRENT_ZOOM_PERCENT = zoom_percent
 #                       gl.REAL_WIDTH = real_width
 #                       gl.USING_SCROLL_MENU = 0
                    elif it[1] == " Refresh ":
                        (new_img, img, rect, file) = command_refresh(refresh_img, screen, gl.files, file, num_imgs)
                    elif it[1] == " First Image ":
                        (new_img, img, refresh_img, file, rect) = command_first_img(new_img, screen, file, len(gl.files), rect)
                    elif it[1] == " Last Image ":
                        (new_img, img, refresh_img, file, rect) = command_last_img(new_img, screen, file, len(gl.files), rect)
                    elif it[1] == " Shuffle ":
                        (new_img, img, refresh_img, rect) = command_shuffle(new_img, img, screen, rect, file, num_imgs)
                    elif it[1] == " Unshuffle ":
                        (new_img, img, refresh_img, rect, file) = command_unshuffle(new_img, img, screen, rect, file, num_imgs)
                    elif it[1] == " Flip Horizontal ":
                        (new_img, img, rect) = command_horiz(new_img, screen, file, num_imgs, rect)
                    elif it[1] == " Flip Vertical ":
                        (new_img, img, rect) = command_vert(new_img, screen, file, num_imgs, rect)
                    elif it[1] == " Slideshow ":
                        (new_img, img, refresh_img, file, rect) = my_slideshow(new_img, img, screen, file, num_imgs, rect)
                        my_update_screen(new_img, screen, rect, file, len(gl.files))
                    elif it[1] == " Playlists ":
                        (new_img, new_img, new_img, file, rect, num_imgs) = command_play_list_options(screen, file)
                        gl.SORT_HIT = 0
                    elif it[1] == " Add to Playlist ":
                        command_add_to_play_list(screen, gl.files[file])
                        gl.SORT_HIT = 0
                        my_update_screen(new_img, screen, rect, file, len(gl.files))
                    elif it[1] == " Edit ":
                        (screen, before_winsize, not_accepted) = adjust_screen(screen)
                        gl.USING_SCROLL_MENU = 1
                        (new_img, img, refresh_img, file, num_imgs, rect) = command_edit_menu(screen, file, new_img, num_imgs, rect)
                        screen = restore_screen(screen, before_winsize, not_accepted, new_img, file, num_imgs, rect)
                        my_update_screen(new_img, screen, rect, file, num_imgs)
                        gl.USING_SCROLL_MENU = 0
                    elif it[1] == " Hide Image ":
                        command_hide(screen, new_img, rect, file, num_imgs)
                    elif it[1] == " Extract from Web ":
                        (screen, before_winsize, not_accepted) = adjust_screen(screen)
                        (new_img, num_imgs) = open_url(screen, img)
                        gl.URL_ERROR = False
                        file = 0
                        img = refresh_img = new_img
                        screen = restore_screen(screen, before_winsize, not_accepted, new_img, file, num_imgs, rect)
                        rect = get_center(screen, new_img)
                        my_update_screen(new_img, screen, rect, file, len(gl.files))
                        normal_cursor()
                    elif it[1] == " Help ":
                        gl.CALC_ZOOM = 0
                        zoom_percent = gl.CURRENT_ZOOM_PERCENT
                        real_width = gl.REAL_WIDTH
                        command_help(screen, new_img, file, rect, num_imgs)
                        if gl.ESCAPED:
                            gl.CURRENT_ZOOM_PERCENT = zoom_percent
                            gl.REAL_WIDTH = real_width
                        gl.ESCAPED = 0
                    elif it[1] == " Close Menu " or it[1] == " Hand Tool ":
                        if it[1] == " Hand Tool ":
                            pygame.event.set_allowed(MOUSEMOTION)
                            gl.HAND_TOOL = 1
                            drag_hand_cursor()
                        gl.MENU_POS = -1
                        my_update_screen(new_img, screen, rect, file, len(gl.files))
                        normal_cursor()
                        return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
                    elif it[1] == " Exit ":
                        clean_screen()
                        raise SystemExit
            break
        if event.type == KEYDOWN and event.key not in (K_LALT, K_RALT, K_LCTRL, K_RCTRL, K_TAB):
            return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
        if middle_click(event):
            "close the menu upon middle click"
            gl.MENU_POS = -1
            my_update_screen(new_img, screen, rect, file, len(gl.files))
            normal_cursor()
            return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
        if right_click(event):
            wait_cursor()
            gl.MENU_POS = -1
            my_update_screen(new_img, screen, rect, file, len(gl.files))
            (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect) =\
            command_main_menu(refresh_img, screen, file, num_imgs, rect, new_img, img, new_img_width, new_img_height, ns)
            return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)

        if event.type == MOUSEBUTTONDOWN: # this needs to be down here to work
            if event.dict['button'] in (4, 5): # scroll wheel activated
                # allow for mouse dragging:
                pygame.event.set_allowed(MOUSEMOTION) 
                gl.HAND_TOOL = 1
                drag_hand_cursor()
                # close menu:
                gl.MENU_POS = -1 
                my_update_screen(new_img, screen, rect, file, len(gl.files))
                return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
 

    if gl.KEEP_MENU_OPEN == "1":
        # this code purposely closes the main menu by breaking the recursion to free up RAM memory
        gl.COUNT_CLICKS += 1
        if gl.COUNT_CLICKS == 1: # free up ram every click
            return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
        (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect) =\
        command_main_menu(refresh_img, screen, file, num_imgs, rect, new_img, img, new_img_width, new_img_height, ns)
    normal_cursor()
    return (refresh_img, screen, file, num_imgs, new_img, img, new_img_width, new_img_height, rect)
Ejemplo n.º 29
0

if __name__ == '__main__':
    cfg_from_file(default_cfg)
    caffe.set_device(GPU_ID)
    caffe.set_mode_gpu()
    net = caffe.Net(default_prototxt, default_model, caffe.TEST)

    print 'Processing img ...'
    image_index = get_image_index(image_set_file)
    im_num = len(image_index)
    vals = np.empty((im_num,))
    for j in xrange(im_num):
        fn = os.path.join(data_dir, image_index[j])
        print fn, '\t',
        im = load_img(fn)
        im -= cfg.PIXEL_MEANS

        data = np.zeros((1, 3, im.shape[0], im.shape[1]), dtype=np.float32)
        for chn in range(3):
            data[0, chn, :, :] = im

        blobs_out = net.forward(data=data)
        vals[j] = blobs_out['reg_value']
        print vals[j]

    fn = os.path.join(sys.path[0], 'slice_scores.txt')
    with open(fn,'w') as f:
        f.writelines([a + '\t' + str(b) + '\r\n' for a,b in zip(image_index, vals)])
    print 'Written to', fn
Ejemplo n.º 30
0
Archivo: thumb.py Proyecto: rkulla/imgv
def thumbs_engine(screen, new_img, file):
    screen_pause = 0
    SPACER = 5
    x = []
    place = file  # start thumbing from current image position
    marker = 0
    (i, j) = (SPACER, SPACER)
    (esc_rect, close_font) = close_button(screen)
    font_size = 9
    font = pygame.font.Font(gl.FONT_NAME, font_size)
    pygame.event.set_blocked(MOUSEMOTION)
    while 1:
        event = pygame.event.poll()
        pygame.time.wait(1)
        check_quit(event)
        cursor = pygame.mouse.get_pos()
        hover_cursor(cursor, (esc_rect,))
        gl.PAUSED = 0  # critical
        if hit_key(event, K_ESCAPE):
            gl.ESCAPED = 1
            return (new_img, new_img, new_img, file)
        if left_click(event):
            if esc_rect.collidepoint(cursor):
                gl.ESCAPED = 1
                break
        if hit_key(event, K_t) or hit_key(event, K_p) or hit_key(event, K_PAUSE):
            # pause
            set_caption("Thumbnails [Paused]")
            try:
                if place % gl.MAX_THUMBS_SET != 0:
                    # only pause if it's not the last thumbnail on the page
                    gl.PAUSED = 1
                    screen_pause = 1
            except:
                gl.PAUSED = 1
                screen_pause = 1
        if screen_pause == 1:
            normal_cursor()
            while 1:
                event = pygame.event.poll()
                pygame.time.wait(1)
                cursor = pygame.mouse.get_pos()
                (esc_rect, close_font) = close_button(screen)
                hover_fx(screen, x, cursor, marker)
                hover_cursor(cursor, [esc_rect] + [y[0] for y in x])
                if left_click(event):
                    if esc_rect.collidepoint(cursor):
                        gl.ESCAPED = 1
                        return (new_img, new_img, new_img, file)
                    for item in x:  # load clicked image:
                        if item[0].collidepoint(cursor):
                            wait_cursor()
                            new_img = load_img(item[1])
                            file = gl.files.index(item[1])
                            return (new_img, new_img, new_img, file)
                check_quit(event)
                if (
                    hit_key(event, K_SPACE)
                    or hit_key(event, K_t)
                    or hit_key(event, K_n)
                    or hit_key(event, K_p)
                    or hit_key(event, K_PAUSE)
                    or right_click(event)
                ):
                    if not place >= len(gl.files):
                        if not gl.PAUSED:  # go to next thumb page:
                            paint_screen(gl.IMGV_COLOR)
                            close_button(screen)
                            set_caption("Thumbnails [Paused]")
                            x = []
                            screen_pause = 0
                            marker = 0
                            break
                        # unpause:
                        gl.PAUSED = 0
                        screen_pause = 0
                        break
                if hit_key(event, K_BACKSPACE) or hit_key(event, K_b) or middle_click(event):
                    # go back to previous thumb page, even if paused:
                    if (place - marker) > 0:
                        i = j = SPACER
                        if gl.PAUSED:
                            gl.PAUSED = 0
                        paint_screen(gl.IMGV_COLOR)
                        close_button(screen)
                        screen_pause = 0
                        place = place - (marker + gl.MAX_THUMBS)
                        marker = 0
                        x = []
                        break
                if hit_key(event, K_ESCAPE):
                    gl.ESCAPED = 1
                    return (new_img, new_img, new_img, file)
        else:
            set_caption("Loading Thumbnails [%d] - imgv" % marker)
            (x, i, j, place, screen_pause, marker) = show_thumbs(
                screen, SPACER, x, i, j, place, marker, font, font_size
            )
        pygame.time.delay(5)
    return (new_img, new_img, new_img, file)
Ejemplo n.º 31
0
def command_show_res_modes(screen, new_img, file, num_imgs, rect):
    paint_screen(screen, gl.BLACK)
    set_caption("Resize Options - imgv")
    menu_items = []
    (esc_rect, font) = close_button(screen)
    res_font = pygame.font.Font(gl.FONT_NAME, 18)
    res_font.set_bold(1)
    show_message(screen, "Choose a preset or custom window size for imgv", "top", 12, ("underline", "bold"))
    show_message(screen, "Use current window size as fullscreen resolution?", (170, 192), 10)
    show_message(screen, "No  Yes", (430, 182), 10)
    show_message(screen, "Option: _", "bottom", 12)
    (menu_items, men_ops) = show_res_modes(screen, menu_items, res_font)
    pygame.event.set_blocked(MOUSEMOTION)
    while 1:
       event = pygame.event.poll()
       pygame.time.wait(35) # don't use 100% CPU
       cursor = pygame.mouse.get_pos()
       hover_fx(screen, menu_items, cursor, res_font)
       if gl.NOT_HOVERED:
           show_message(screen, "%sOption: _%s" % (" " * 100, " " * 100), "bottom", 12)
           blank_fx(screen, 0)
       check_quit(event)

       if event.type == VIDEORESIZE:
            screen = pygame.display.set_mode(event.dict['size'], RESIZABLE)
            rect = get_center(screen, new_img)
            command_show_res_modes(screen, new_img, file, num_imgs, rect)
            break

       # draw checked box:
       checked_img = load_img(gl.CHECKED_BOX, screen, False)
       checked_img_rect = checked_img.get_rect()
       if gl.FULLSCREEN_SPECIAL == 0:
           checked_img_rect[0] = 432
       else:
           checked_img_rect[0] = 455
       checked_img_rect[1] = 195
       screen.blit(checked_img, checked_img_rect)
       update(checked_img_rect)

       # draw unchecked box:
       unchecked_img = load_img(gl.UNCHECKED_BOX, screen, False)
       unchecked_img_rect = unchecked_img.get_rect()
       if gl.FULLSCREEN_SPECIAL == 0:
           unchecked_img_rect[0] = 455
       else:
           unchecked_img_rect[0] = 432
       unchecked_img_rect[1] = 195
       screen.blit(unchecked_img, unchecked_img_rect)
       update(unchecked_img_rect)

       hover_cursor(cursor, [esc_rect, checked_img_rect, unchecked_img_rect] + [x[0] for x in menu_items])

       if hit_key(event, K_ESCAPE):
           update_res_screen(screen, file, new_img)
           return rect
       if event.type == KEYDOWN and event.key in (K_F2, K_F3, K_F4, K_F5, K_F6, K_c):
           if hit_key(event, K_F2):
               rect = command_640x480(new_img, file, num_imgs, rect)
           if hit_key(event, K_F3):
               rect = command_800x600(new_img, file, num_imgs, rect)
           if hit_key(event, K_F4):
               rect = command_1024x768(new_img, file, num_imgs, rect)
           if hit_key(event, K_F5):
               rect = command_1280x1024(new_img, file, num_imgs, rect)
           if hit_key(event, K_F6):
               screen = command_fullscreen(screen, new_img, file, num_imgs, rect)
               rect = get_center(screen, new_img)
               my_update_screen(new_img, screen, rect, file, num_imgs)
           if hit_key(event, K_c):
               rect = do_custom(screen, new_img, file, num_imgs, rect)
           return rect
       if left_click(event):
           if esc_rect.collidepoint(cursor):
               gl.ESCAPED = 1
               update_res_screen(screen, file, new_img)
               return rect
           if unchecked_img_rect.collidepoint(cursor):
               gl.FULLSCREEN_SPECIAL ^= 1 # toggle
           for it in menu_items:
               if it[0].collidepoint(cursor) and it[1] in men_ops:
                   if it[1] == "F2) 640x480":
                       rect = command_640x480(new_img, file, num_imgs, rect)
                   elif it[1] == "F3) 800x600":
                       rect = command_800x600(new_img, file, num_imgs, rect)
                   elif it[1] == "F4) 1024x768":
                       rect = command_1024x768(new_img, file, num_imgs, rect)
                   elif it[1] == "F5) 1280x1024":
                       rect = command_1280x1024(new_img, file, num_imgs, rect)
                   elif it[1] == "F6) Fullscreen":
                       screen = command_fullscreen(screen, new_img, file, num_imgs, rect)
                       rect = get_center(screen, new_img)
                       my_update_screen(new_img, screen, rect, file, num_imgs)
                   elif it[1] == "C) Custom":
                       rect = do_custom(screen, new_img, file, num_imgs, rect)
                   return rect
       gl.NOT_HOVERED = 1
    return rect
Ejemplo n.º 32
0
from torchvision import transforms
from run_code import run_style_transfer
from load_img import load_img, show_img
from torch.autograd import Variable

style_img = load_img('./picture/star.jpg')
# style_img = Variable(style_img).cpu()
style_img = Variable(style_img).cuda()
content_img = load_img('./picture/tower.jpg')
# content_img = Variable(content_img).cpu()
content_img = Variable(content_img).cuda()

input_img = content_img.clone()

out = run_style_transfer(content_img, style_img, input_img, num_epoches=200)
print("style_transfer_img is ...")
show_img(out.cpu())
save_pic = transforms.ToPILImage()(out.cpu().squeeze(0))
save_pic.save('./picture/star_tower.jpg')
Ejemplo n.º 33
0
from torchvision import transforms
from run_code import run_style_transfer
from load_img import load_img, show_img
from torch.autograd import Variable

style_img = load_img('./picture/style.jpg')
style_img = Variable(style_img).cuda()
content_img = load_img('D:\image_face/18.jpg')
content_img = Variable(content_img).cuda()

input_img = content_img.clone()

out = run_style_transfer(content_img, style_img, input_img, num_epoches=200)

show_img(out.cpu())
save_pic = transforms.ToPILImage()(out.cpu().squeeze(0))
save_pic.save('./picture/saved_picture.png')
Ejemplo n.º 34
0
def four(screen, file, new_img, ns):
    paint_screen(screen, gl.IMGV_COLOR) # so transparent status bars don't mess up on VIDEOEXPOSE repaints
    old_file = file
    (img_one_rect, img_two_rect, img_three_rect, img_four_rect) = (0, 0, 0, 0)
    (img_one_name, img_two_name, img_three_name, img_four_name) = (0, 0, 0, 0)
    (show_img_one, show_img_two, show_img_three, show_img_four) = (0, 0, 0, 0)

    rect = show_message(screen, "", "bottom", 9, ("bold")) # needed to not paint on esc_rect first time
    (file, img_one_rect, img_one_name, img_one_file) = square_one(screen, file)
    (file, img_two_rect, img_two_name, img_two_file) = square_two(screen, file)
    (file, img_three_rect, img_three_name, img_three_file) = square_three(screen, file)
    (file, img_four_rect, img_four_name, img_four_file) = square_four(screen, file)

    (esc_rect, close_font) = close_button(screen)
    start = ns
    while 1:
        flag = 0
        event = pygame.event.poll()
        pygame.time.wait(1)
        cursor = pygame.mouse.get_pos()

        if event.type == VIDEORESIZE:
            pygame.event.set_blocked(VIDEOEXPOSE)
            screen = pygame.display.set_mode(event.dict['size'], RESIZABLE)
            file = file - 4
            pygame.event.set_allowed(VIDEOEXPOSE)
            (file, new_img, start) = four(screen, file, new_img, ns)
            flag = 1
            break

        if hit_key(event, K_ESCAPE):
            gl.ESCAPED = 1
            file = old_file
            break
        check_quit(event)
        if hit_key(event, K_SPACE) or hit_key(event, K_n) or hit_key(event, K_4) or right_click(event): # show next 4 images
            paint_screen(screen, gl.IMGV_COLOR)
            flag = 1
        if hit_key(event, K_BACKSPACE) or hit_key(event, K_b) or middle_click(event): # show previous 4 images
            paint_screen(screen, gl.IMGV_COLOR)
            file = file - 8
            flag = 1

        if flag == 1:
            (file, img_one_rect, img_one_name, img_one_file) = square_one(screen, file)
        if flag == 1:
            (file, img_two_rect, img_two_name, img_two_file) = square_two(screen, file)
        if flag == 1:
            (file, img_three_rect, img_three_name, img_three_file) = square_three(screen,\
            file)
        if flag == 1:
            (file, img_four_rect, img_four_name, img_four_file) = square_four(screen, file)
        (show_img_one, show_img_two, show_img_three, show_img_four, rect) = hover_square(\
         screen, show_img_one, show_img_two, show_img_three, show_img_four, img_one_rect,\
        img_two_rect, img_three_rect, img_four_rect, img_one_name, img_two_name, img_three_name,\
        img_four_name, img_one_file, img_two_file, img_three_file, img_four_file, rect, event)

        hover_fx(screen, img_one_name, img_two_name, img_three_name, img_four_name, img_one_rect, img_two_rect, img_three_rect, img_four_rect, cursor)

        if show_img_one == None:
            file = old_file
            break
        if hit_key(event, K_w): 
            if len(gl.files) <= 1: # nothin to slideshow
                file = old_file
                break # kick 'em out
            (file, img_one_file, img_two_file, img_three_file, img_four_file) =\
            my_fourslideshow(screen, new_img, rect, gl.files[file], file - 4,\
            len(gl.files), img_one_file, img_two_file, img_three_file, img_four_file, ns)
            paint_screen(screen, gl.IMGV_COLOR)
            (file, new_img, start) = four(screen, file - 4, new_img, ns)
            flag = 1
            break
        if left_click(event):
            start = start_timer()
            if img_one_rect.collidepoint(cursor):
                wait_cursor()
                new_img = load_img(gl.files[img_one_file], screen)
                return (img_one_file, new_img, start)
            if img_two_rect.collidepoint(cursor):
                wait_cursor()
                new_img = load_img(gl.files[img_two_file], screen)
                return (img_two_file, new_img, start)
            if img_three_rect.collidepoint(cursor):
                wait_cursor()
                new_img = load_img(gl.files[img_three_file], screen)
                return (img_three_file, new_img, start)
            if img_four_rect.collidepoint(cursor):
                wait_cursor()
                new_img = load_img(gl.files[img_four_file], screen)
                return (img_four_file, new_img, start)
            if esc_rect.collidepoint(cursor):
                file = old_file
                gl.ESCAPED = 1
                break
        if event.type == VIDEOEXPOSE:
       # if event.type == VIDEOEXPOSE and not pygame.mouse.get_focused():#
            # repaint the screen in case other windows painted over it:
            file = file - 4
            (file, new_img, start) = four(screen, file, new_img, ns)
            flag = 1
            break
    return (file, new_img, start)
Ejemplo n.º 35
0
    def _get_minibatch(self, volume_ids):
        ims = []
        for i in range(self.group_size):
            while True:
                try_again = False
                volume_id = volume_ids[i]
                nIm = len(self.data_list[volume_id])

                k = np.random.randint(np.floor(nIm / self.slice_num)) + 1
                s = 1 / (1 + np.exp((np.random.rand(1) - .5) * 2 * 5)
                         )  # give more chance to top and bottom slices because
                # the middle slices naturally have larger probability of being selected
                start = int(s * (nIm - k * (self.slice_num - 1)))
                # start = np.random.choice(nIm - d*(self.slice_num-1)) # original
                img_ids = [start + j * k for j in range(self.slice_num)]

                # count the frequency of selection of each part of the volume
                r = np.floor(np.array(img_ids, dtype=np.float) / nIm * 50)
                self._sel_hist[r.astype(np.int)] += 1

                ims1 = []
                for img_id in img_ids:
                    # print volume_id, img_id, len(self.fd_list), len(self.data_list[volume_id])
                    fn = os.path.join(self.fd_list[volume_id],
                                      self.data_list[volume_id][img_id])
                    if os.path.getsize(
                            fn
                    ) < cfg.TRAIN.MIN_IM_SIZE_KB:  # very small size indicates the image contains very little contents
                        try_again = True
                        break

                    im = load_img(fn)
                    # print im.shape

                    if im is None:
                        try_again = True
                        break

                    if cfg.TRAIN.CROP_RANDOM_PATCH:
                        # randomly crop a 2D patch
                        H, W = im.shape
                        area = im.sum()
                        while True:
                            r = np.random.rand() * .5 + .5
                            h = np.random.randint(H / 2, H + 1)
                            w = min(W, int(np.ceil(float(H * W) * r / h)))
                            y = np.random.randint(H - h + 1)
                            x = np.random.randint(W - w + 1)
                            # print mask[y:y+h, x:x+w].sum(), area
                            if im[y:y + h, x:x + w].sum() < area / 3:
                                continue  # prevent selecting large black area
                            im = im[y:y + h, x:x + w]
                            break

                    im -= self.avg_img
                    ims1.append(im)

                if try_again:
                    print '~', fn
                    continue
                else:
                    ims += ims1
                    break
            if DEBUG: print img_ids, nIm

        # print self._sel_hist, self._sel_hist/self._sel_hist.sum()
        return ims