import osimport tkinter as tkfrom tkinter import RIDGE, Button, Frame, Label, Tk, Toplevel, filedialog, messageboximport cv2from PIL import Image, ImageTkimport pkg_resourcesfrom main import Face_Recognition_Systemimport osimport tkinter as tkimport cv2import numpy as npfrom PIL import Image, ImageTkimport face_recognitionimport mysql.connectorhaar=pkg_resources.resource_filename('cv2','data/haarcascade_frontalface_default.xml')class Flogin: def __init__(self, root): self.root = root self.face_recog() self.video_capture = cv2.VideoCapture(0) def face_recog(self): self.video_capture = cv2.VideoCapture(0) def draw_boundray(img, classifier, scaleFactor, minNeighbors, color, text, clf): gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) features = classifier.detectMultiScale(gray_image, scaleFactor, minNeighbors) coord = [] for (x, y, w, h) in features: cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 3) user_name, predict = clf.predict(gray_image[y:y + h, x:x + w]) confidence = int((100 * (1 - predict / 300))) conn = mysql.connector.connect(username='root', password='pass', host='localhost', database='face_recognition', port=3306) cursor = conn.cursor() cursor.execute("select fname from regteach where user_name=" + str(user_name)) n = cursor.fetchone() n = "+".join(n) # cursor.execute("select Roll_No from student where Student_ID=" + str(id)) # r = cursor.fetchone() # r = "+".join(r) # cursor.execute("select Student_ID from student where Student_ID=" + str(id)) # i = cursor.fetchone() # i = "+".join(map(str, i)) # attendance_marked = self.is_attendance_marked(n) # Check if attendance is already marked if confidence > 78: # cv2.putText(img, f"Student_ID:{i}", (x, y - 80), cv2.FONT_HERSHEY_COMPLEX, 0.8, (64, 15, 223), 2) cv2.putText(img, f"user_name:{n}", (x, y - 55), cv2.FONT_HERSHEY_COMPLEX, 0.8, (64, 15, 223), 2) # cv2.putText(img, f"Roll-No:{r}", (x, y - 30), cv2.FONT_HERSHEY_COMPLEX, 0.8, (64, 15, 223), 2) # if attendance_marked: # cv2.putText(img, "Already Marked", (x, y - 5), cv2.FONT_HERSHEY_COMPLEX, 0.8, (255, 0, 0), 2) # else: # self.mark_attend(i, r, n) self.login() return True else: cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 3) cv2.putText(img, "Unknown Face", (x, y - 5), cv2.FONT_HERSHEY_COMPLEX, 0.8, (255, 255, 0), 3) # coord = [x, y, w, y] return False # # ========== # def recognize(img, clf, faceCascade): # coord = draw_boundray(img, faceCascade, 1.1, 10, (255, 25, 255), "Face", clf) # return img faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") clf = cv2.face_LBPHFaceRecognizer.create() clf.read("clf_admin.xml") videoCap = cv2.VideoCapture(0) while True: ret, img = videoCap.read() if draw_boundray(img, faceCascade, 1.1, 10, (255, 25, 255), "Face", clf): break imgBackground = cv2.imread(r"C:\Users\Bikash\Desktop\Backup\sakib\Python_Test_Project\Images_GUI\facelogin.jpg") # Resize imgBackground to match the window size (1366x768) imgBackground = cv2.resize(imgBackground, (1366, 768)) # Calculate the position to center the camera frame x_offset = (1366 - img.shape[1]) // 2 y_offset = (768 - img.shape[0]) // 2 # Overlay the camera frame in the center imgBackground[y_offset:y_offset + img.shape[0], x_offset:x_offset + img.shape[1]] = img cv2.imshow("Face Detector", imgBackground) if cv2.waitKey(1) == 13: break videoCap.release() cv2.destroyAllWindows() def login(self): self.new_window = Toplevel(self.root) self.app = Face_Recognition_System(self.new_window) self.video_capture.release() # Release webcam resource def on_closing(self): self.video_capture.release() # Release webcam resource self.root.distroy() # Close the windowif __name__ == "__main__": root = tk.Tk() Flogin(root) root.mainloop()
please solve this: