Pyexiv2 с многопроцессорностью

Я выполняю серию исправлений искажений на изображениях, используя OpenCV. К сожалению, вывод теряет метаданные exif. Поэтому я возвращаю его с помощью Pyexiv2.

def propagate_exif(infile,outfile):
    import pyexiv2
    msrc = pyexiv2.ImageMetadata(infile)
    msrc.read()
    print msrc.exif_keys
    mdst = pyexiv2.ImageMetadata(outfile)
    mdst.read()
    msrc.copy(mdst,comment=False)
    mdst.write()

Однако при запуске всего кода с использованием многопроцессорной обработки pyexiv2 постоянно вылетает при копировании метаданных. Возможно, что pyexiv2 начнет работать с метаданными клонирования файлов, пока OpenCV все еще выводит их. Какова будет лучшая процедура, чтобы обойти проблемы одновременного доступа pyexiv2/OpenCV? Параллельная функция как ниже:

def distortgrid_file(infile,out_dir,mapx,mapy,idealise_matrix=False):
    outfile = os.path.join(out_dir,os.path.basename(infile))   
    #read calibration parameters
    apply_distortion(infile, outfile, mapx,mapy)
    #preserve exif parameters
    propagate_exif(infile,outfile)

1 ответ

Решение

Обновление до последней версии pyexiv2 решило проблему.

Другие вопросы по тегам