Есть ли способ остановить выполнение кода с использованием библиотеки cv2 в python - PullRequest
0 голосов
/ 02 мая 2020
****
import cv2
import os
import numpy as np
import sys
import time

def labels_for_training_data(directory):
    faces=[]
    faceID=[]
    for path,subdirnames,filenames in os.walk(directory):
        for filename in filenames:
            if filename.startswith("."):
                print("skipping system file")
                continue

            id=os.path.basename(path)
            img_path=os.path.join(path,filename)
            print("img_path: ",img_path)
            print('id: ', id)
            test_img=cv2.imread(img_path)
            if test_img is None:
                print("Image not loaded properly")
                continue
            faces_rect,gray_img=facedetection(test_img)
            if len(faces_rect)!=1:
                continue # more than one person is present
            (x,y,w,h)=faces_rect[0]
            roi_gray= gray_img[y:y+w,x:x+h]
            faces.append(roi_gray)
            faceID.append(int(id))
    return faces,faceID

def facedetection(test_img):
    gray_img=cv2.cvtColor(test_img,cv2.COLOR_BGR2GRAY)
    face_haar_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    faces=face_haar_cascade.detectMultiScale(gray_img,scaleFactor=1.32,minNeighbors=5)
    return faces,gray_img

def train_classifier(faces,faceID):
    face_recognizer=cv2.face.LBPHFaceRecognizer_create()
    face_recognizer.train(faces,np.array(faceID))
    return face_recognizer

print("completed Training")
time.sleep(20)
sys.exit(0)

faces,faceID=labels_for_training_data('trainingImages')
face_recognizer=train_classifier(faces,faceID)
face_recognizer.save('trainingData.yml')
print("completed Training")

когда я запускаю код, не использующий библиотеку cv2, тогда в конце pycharm показывает комментарий. Процесс завершен с кодом завершения 0, но когда я использую библиотеку cv2, код выполняется, но не показывает никаких комментариев. говоря

...