Не удается сохранить данные exif изображения при редактировании с помощью opencv в python - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь обрезать изображения в python, и мне нужно сохранить exif-данные при их обрезке, но я теряю exif-данные исходного изображения при сохранении полученного обрезанного изображения. Как можно избежать этого? Код, который я запускаю:

from imutils import face_utils
import imutils
import numpy as np
import collections
import dlib
import cv2
import glob
import os

detector = dlib.get_frontal_face_detector()
PREDICTOR_PATH = "shape_predictor_68_face_landmarks.dat"
predictor = dlib.shape_predictor(PREDICTOR_PATH)

def face_remap(shape):
    remapped_image = cv2.convexHull(shape)
    return remapped_image


def faceCrop(imagePattern):

    imgList=glob.glob(imagePattern)
    if len(imgList)<=0:
        print ('No Images Found')
        return
    for img in imgList:
        image = cv2.imread(img)
        image = imutils.resize(image, width=500)
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        out_face = np.zeros_like(image)
        rects = detector(gray, 1)
        for (i, rect) in enumerate(rects):
            shape = predictor(gray, rect)
            shape = face_utils.shape_to_np(shape)
            #initialize mask array
            remapped_shape = np.zeros_like(shape) 
            feature_mask = np.zeros((image.shape[0], image.shape[1]))   
            # we extract the face
            remapped_shape = face_remap(shape)
            cv2.fillConvexPoly(feature_mask, remapped_shape[0:27], 1)
            feature_mask = feature_mask.astype(np.bool)
            out_face[feature_mask] = image[feature_mask]
            fname,ext=os.path.splitext(img)
            cv2.imwrite(fname+'_crop'+ext, out_face)
    print ('Listo \n')                
faceCrop('/Users/alejandroramirez/Documents/imagenes nuevas/2/*.JPG')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...