|
@@ -1,21 +1,18 @@
|
|
|
|
|
|
|
|
|
-import time
|
|
|
-
|
|
|
-start = time.time()
|
|
|
-
|
|
|
import argparse
|
|
|
-import cv2
|
|
|
import itertools
|
|
|
import os
|
|
|
+import time
|
|
|
|
|
|
-import numpy as np
|
|
|
-np.set_printoptions(precision=2)
|
|
|
-
|
|
|
+import cv2
|
|
|
+import numpy
|
|
|
import openface
|
|
|
|
|
|
-from get_features import *
|
|
|
+import get_features
|
|
|
|
|
|
+start = time.time()
|
|
|
+numpy.set_printoptions(precision=2)
|
|
|
align = openface.AlignDlib("shape_predictor_68_face_landmarks.dat")
|
|
|
|
|
|
def get_faces(imgPath):
|
|
@@ -30,20 +27,17 @@ def get_faces(imgPath):
|
|
|
start = time.time()
|
|
|
bb = align.getAllFaceBoundingBoxes(rgb_img)
|
|
|
|
|
|
- iter = 0
|
|
|
-
|
|
|
- for img in bb:
|
|
|
- iter += 1
|
|
|
+ for iter, img in enumerate(bb):
|
|
|
x1 = abs(img.tl_corner().x)
|
|
|
y1 = abs(img.tl_corner().y)
|
|
|
x2 = abs(img.br_corner().x)
|
|
|
y2 = abs(img.br_corner().y)
|
|
|
- print(x1,x2,y1,y2)
|
|
|
+ print(x1, x2, y1, y2)
|
|
|
crop_img = bgr_img[y1:y2, x1:x2]
|
|
|
- cv2.imwrite("face"+str(iter)+".png",crop_img)
|
|
|
- get_features(rgb_img,img)
|
|
|
+ cv2.imwrite("face{}.png".format(iter), crop_img)
|
|
|
+ get_features.get_features(rgb_img, img)
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
|
parser.add_argument('img', type=str, help="Input image.")
|
|
|
args = parser.parse_args()
|
|
|
-get_faces(args.img)
|
|
|
+get_faces(args.img)
|