Обработка фото по-любительски

Аппарат Nikon D90 приобрел еще в марте’11 (а к нему и фикс 35mm), за полгода всего три тысячи нащелкал. И вот на выходных выбрались с девушками пофотографироваться. Но какой же Ъ-фотограф обходится без постобработки фоточек в редакторе? Под катом скрипт пакетной обработки, простой и автоматический одновременно.

Итак, набросал простой скрипт, чтобы пакетно обработать получившиеся фотокарточки. Скрипт автоматически подправляет контраст и добавляет резкости. Чтобы скрипт работал, понадобятся Linux и Gimp 2.6 + Python-Fu (может, под другой всем-известной-платформой будет работать, не пробовал).

# coding=utf8

from os import walk
from gimpfu import pdb

def get_images(target_dir):
    '''
    Возвращает список картинок для обработки.
    '''
    all_files = walk(target_dir).next()[2]
    images = filter(lambda file: file.endswith('JPG'), all_files)
    images.sort()
    return images


def convert_images(target_dir, output_dir, images):
    '''
    Обрабатывает картинки.
    '''
    count = len(images)
    for i, image_name in zip(range(count), images):
        print 'Converting %s (%s/%s)'%(image_name, i + 1, count)
        image = pdb.file_jpeg_load('%s/%s'%(target_dir, image_name), image_name)
        layer = image.layers[0]
        # Чтобы попробовать исправить безнадежно испорченный баланс белого:
        # pdb.gimp_levels_stretch(layer)
        # Нерезкая маска - как по мне, так ниочинь:
        # pdb.plug_in_unsharp_mask(image, layer, 5, 0.5, 0)
        pdb.plug_in_c_astretch(image, layer)
        pdb.plug_in_sharpen(image, layer, 50)
        # Можно пережать картинки:
        # pdb.file_jpeg_save(image, image.layers[0], '%s/%s'%(OUTPUT_DIR, image_name), image_name, 0.95, 0, 1, 0, '', 0, 0, 0, 0)
        pdb.gimp_file_save(image, layer, '%s/%s'%(output_dir, image_name), image_name)
        pdb.gimp_image_delete(image)


target_dir = '/path/to/photo/dir/'
print 'Converting images from %s'%target_dir
images = get_images(target_dir)
output_dir = '%s/converted/'%target_dir
convert_images(target_dir, output_dir, images)

И картиночки:

Добавить комментарий

Ваш адрес email не будет опубликован.

Поставьте галочки правильно (как бы защита от спама):

Я бот

Я не бот