from flask import Flask, jsonify, json, request, Response
import cv2
import numpy as np
import face_recognition
import os
from datetime import datetime
tempImg = ''
path = 'Images'
images = []
names = []
myList = os.listdir(path)
for cl in myList:
curImg = cv2.imread(f'{path}/{cl}')
images.append(curImg)
names.append(os.path.splitext(cl)[0])
def findEncodings(images):
encodeList = []
for img in images:
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
encode = face_recognition.face_encodings(img)[0]
encodeList.append(encode)
return encodeList
encodeListKnown = findEncodings(images)
print('Encoding Complete')
def ImageProcessing(apiImg):
img = face_recognition.load_image_file(apiImg)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
while True:
facesCurFrame = face_recognition.face_locations(img)
encodesCurFrame = face_recognition.face_encodings(img, facesCurFrame)
for encodeFace, faceLoc in zip(encodesCurFrame, facesCurFrame):
matches = face_recognition.compare_faces(encodeListKnown, encodeFace)
faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)
# print(faceDis)
matchIndex = np.argmin(faceDis)
if matches[matchIndex]:
name = names[matchIndex]
print(name)
return name
else:
return "Not match"
app = Flask(__name__)
@app.route("/")
def index():
print("Welcome")
return "outer"
@app.route("/upload", methods=['POST'])
def hello_world():
print("Image Fetched")
image = request.files["file"]
print(image)
result: str = ImageProcessing(image)
print("result: ",result )
return json.dumps (result)
app.run(host='192.168.43.67',port=5000, debug=True)