2014-06-24 6 views
0

OpenCV를 사용하여 이미지에 일그러짐 보정을 수행하고 있습니다. 유감스럽게도 출력 결과로 exif 메타 데이터가 손실됩니다. 그래서 Pyexiv2를 사용하여 다시 가져오고 있습니다.Pyexiv2 with Multiprocessing

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를 사용하여 전체 코드를 실행하면 메타 데이터를 복사하는 동안 계속 충돌합니다. OpenCV가 파일을 출력하는 동안 pyexiv2가 파일 복제 메타 데이터에서 작동하기 시작할 수 있습니다. 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) 
+0

충돌 메시지가 무엇인가요? –

답변

0

최신 pyexiv2로 업그레이드하면 문제가 해결됩니다.