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 ответ
Решение