Запуск внешних подпроцессов и чтение кода возврата - PullRequest
1 голос
/ 29 января 2010

Я создаю скрипт на python для сортировки большого количества изображений (игровых скриншотов).

Я нашел способ сделать это в imagemagick: я знаю, что если конкретный квадрат изображения совпадает с эталонной культурой, то изображение относится к категории 1. Если нет, я проверяю другой урожай и другую категорию, а если это не подходит, я помещаю изображение в категорию три.

Я нашел, как это сделать в Imagemagick:

convert file.jpg -crop 80x10+90+980 +repage crop.jpg
compare -metric PSNR reference.jpg crop.jpg crop.jpg

(я вырезал кусок изображения, затем сравнил его с "reference.jpg")

Как мне вызвать это из скрипта и выполнить ли, основываясь на том, что преобразование возвращает (это число)?

1 Ответ

4 голосов
/ 29 января 2010
import subprocess

retcode = subprocess.call(['convert', 'file.jpg', '-crop', 
                           '80x10+90+980', '+repage', 'crop.jpg'])
if retcode != 0:
    print 'error on convert'
else:
    retcode = subprocess.call(['compare', '-metric', 'PSNR', 
                               'reference.jpg', 'crop.jpg', 'crop.jpg'])
    print retcode
...