Пакетное автоулучшение изображений GIMP
В гимп встроены такие скриптовые языки как Scheme (Filters>Script-Fu>Console) и Python (Filters>Python-Fu>Console). Тк мне ближе Python, то расскажу о нем:
1) документация
2) можно открыть в самом гимпе консоль Filters>Python-Fu>Console и побаловаться с командами (особенно смотри кнопку Browse)
3) Небольшой пример использования скрипта: нужно было создать много однотипных маркеров из иконок, просто добавив иконку на фон:
import os

ORIGINAL_IMAGES_IN_PATH = '../img/icons'

MARKER_IMAGES_OUT_PATH = '../img/markers'
MARKER_TEMPLATE_PATH = '../css/img-base/marker-template.png'

script = '''
import os

images_in_path = '%(images_in_path)s'

markers_out_path = '%(markers_out_path)s'
marker_template_file = '%(marker_template_file)s'

image_extension = '.png'

image_filter = lambda file_name: file_name[-len(image_extension):] == image_extension


for root, dirs, files in os.walk(images_in_path):
    for file in filter(image_filter, files):
        input_path = os.path.join(root, file)
        output_path = os.path.join(markers_out_path, file)

        image = pdb.gimp_file_load(marker_template_file, 'template')
        layer = pdb.gimp_file_load_layer(image, input_path)
        image.add_layer(layer, 0)
        layer.scale(23, 23, 0)
        layer.set_offsets(7, 7)
        merged_layer = image.merge_visible_layers(0)
        pdb.file_png_save2(image, merged_layer, output_path, output_path, 0, 9, 0, 0, 0, 0, 0, 0, 0)


pdb.gimp_quit(0)
''' % {'images_in_path': os.path.abspath(ORIGINAL_IMAGES_IN_PATH),
       'markers_out_path': os.path.abspath(MARKER_IMAGES_OUT_PATH),
       'marker_template_file': os.path.abspath(MARKER_TEMPLATE_PATH),}

os.system("""gimp --no-interface --batch-interpreter python-fu-eval --batch "%s" """ % script)

4) похоже Вам нужна команда gimp-levels-stretch
Automatically modifies intensity levels in the specified drawable.
This procedure allows intensity levels in the specified drawable to be remapped according to a set of guessed parameters. It is equivalent to clicking the «Auto» button in the Levels tool. This procedure is only valid on RGB color and grayscale images. It will not operate on indexed drawables.

Возможно Вам подойдёт -normalize из imagemagick, примерно как-то так:

for i in *.jpg; do convert -normalize $i res_`basename $i jpg`jpg; done