This an image recognition code that allows a user to login and use another Python script. If the face is recognised break the face detection and then allow the logged in user to access another Python script. The code must not run both, one should and then the other one starts. Below is the sample code
Login=0
while True:
ret, frame = video_capture.read()
rgb_frame = frame[:, :, ::-1]
face_locations = fr.face_locations(rgb_frame)
face_encodings = fr.face_encodings(rgb_frame, face_locations)
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
matches = fr.compare_faces(known_face_encondings, face_encoding)
face_distances = fr.face_distance(known_face_encondings, face_encoding)
best_match_index = np.argmin(face_distances)
if matches[best_match_index]:
Print("successfully loged in")
Login=1
if Login==1:
break
import file
Unfortunately, the code breaks without providing access to the other file, it just breaks and terminates the code. Please help me fix this.
CodePudding user response:
That's because your import file statement comes after break. Once break is reached, the loop in which it is located will be left, and lines that come after this break inside the same loop are not executed.
CodePudding user response:
just remove the break here
if Login==1:
#break # this makes the if clause to break and doesnt run import file
import file
CodePudding user response:
The break statement breaks out of the for loop, therefore you need to use import file at the same level as for and if statement should be inside for
Login=0
while True:
ret, frame = video_capture.read()
rgb_frame = frame[:, :, ::-1]
face_locations = fr.face_locations(rgb_frame)
face_encodings = fr.face_encodings(rgb_frame, face_locations)
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
matches = fr.compare_faces(known_face_encondings, face_encoding)
face_distances = fr.face_distance(known_face_encondings, face_encoding)
best_match_index = np.argmin(face_distances)
if matches[best_match_index]:
Print("successfully loged in")
Login=1
if Login==1:
break
import file
CodePudding user response:
you need to switch the needed function before the break since it exits completely and abandons the rest of the loop
if Login==1:
import file
break
