Spaces:
Paused
Paused
File size: 1,441 Bytes
3de0e37 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# -*- coding: utf-8 -*-
"""
# File name: script_crop.py
# Time : 2022/07/17
# Author: xyguoo@163.com
# Description:
"""
import sys
sys.path.append('.')
from external_code.crop import recreate_aligned_images
from global_value_utils import GLOBAL_DATA_ROOT
import os
from external_code.landmarks_util import predictor_dict, detector
import numpy as np
import cv2
predictor_68 = predictor_dict[68]
##############################################
# Please input your dataset dir
root_dir = 'your/dataset/original/images'
dataset_name = 'your_dataset_name'
##############################################
dataset_dir = os.path.join(GLOBAL_DATA_ROOT, dataset_name)
out_dir = os.path.join(dataset_dir, 'images_256')
if not os.path.exists(out_dir):
os.makedirs(out_dir)
files = os.listdir(root_dir)
files.sort()
for face_path in files:
face_img_bgr = cv2.imread(os.path.join(root_dir, face_path))
face_img_rgb = cv2.cvtColor(face_img_bgr, cv2.COLOR_BGR2RGB)
face_img_rgb = cv2.resize(face_img_rgb, dsize=(face_img_rgb.shape[1], face_img_rgb.shape[0]))
face_bbox = detector(face_img_rgb, 0)
face_lm_68 = np.array([[p.x, p.y] for p in predictor_68(face_img_bgr, face_bbox[0]).parts()])
face_img_pil, _ = recreate_aligned_images(face_img_rgb, face_lm_68, output_size=256)
img_np = np.array(face_img_pil)
cv2.imwrite(os.path.join(out_dir, face_path), cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)) |