Files
resourcespace/lib/facial_recognition/faceRecognizer.py
2025-07-18 16:20:14 +07:00

41 lines
1.1 KiB
Python

import os, sys, cv2, json
if 3 > len(sys.argv):
print('Try running: faceRecognizer.py <path/to/lbph_model.xml> <path/to/image.ext>', file = sys.stderr)
sys.exit(1)
# Init
LBPH_MODEL_PATH = sys.argv[1]
IMAGE_PATH = sys.argv[2]
if not os.path.isfile(LBPH_MODEL_PATH):
print("No model state file '{}'".format(LBPH_MODEL_PATH), file = sys.stderr)
sys.exit(1)
if not os.path.isfile(IMAGE_PATH):
print("No test data file at '{}'".format(IMAGE_PATH), file = sys.stderr)
sys.exit(1)
(major, minor, _) = cv2.__version__.split(".")
major = int(major)
minor = int(minor)
if (major<3 and minor<7) or minor<3:
model = cv2.createLBPHFaceRecognizer()
model.load(LBPH_MODEL_PATH)
elif major == 4 and minor > 2:
model = cv2.face.LBPHFaceRecognizer_create()
model.read(LBPH_MODEL_PATH)
else:
model = cv2.face.createLBPHFaceRecognizer()
model.load(LBPH_MODEL_PATH)
testImage = cv2.imread(IMAGE_PATH, 0)
if testImage is None:
print("Error: Could not read '{}'".format(IMAGE_PATH), file = sys.stderr)
sys.exit(1)
predictedData = model.predict(testImage)
print(json.dumps(predictedData))