1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| import socket import cv2 import sys import os import numpy as npip
address = ('ip', 5555) ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ser.bind(address) ser.listen(5)
print('waiting。。。') conn, addr = ser.accept() print('建立连接...') print('连接对象:', addr) cap = cv2.VideoCapture(0)
frames_num=cap.get(7) print('视频总帧数:',frames_num) print('发送目标...') count = 0
recogizer = cv2.face.LBPHFaceRecognizer_create() recogizer.read('./trainer.yml') names = [] warningtime = 0
def face_detect_demo(img): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt2.xml') face = face_detector.detectMultiScale(gray, 1.1, 5, cv2.CASCADE_SCALE_IMAGE, (100, 100), (300, 300)) for x, y, w, h in face: cv2.rectangle(img, (x, y), (x+w, y+h), color=(255, 144, 30), thickness=2) ids, confidence = recogizer.predict(gray[y:y + h, x:x + w]) if confidence > 80: cv2.putText(img, 'unkonw', (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (255, 144, 30), 2) else: cv2.putText(img, 'dong', (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (255, 144, 30), 2) return img def name(): path = './dataset/' imagePaths = [os.path.join(path, f) for f in os.listdir(path)] for imagePath in imagePaths: name = str(os.path.split(imagePath)[1].split('.', 2)[1]) names.append(name)
while True: flag, frame = cap.read() frame = face_detect_demo(frame) cv2.waitKey(1) count += 1 img_encode = cv2.imencode('.jpg', frame)[1] data_encode = np.array(img_encode) str_encode = data_encode.tostring() try: conn.sendall(str_encode) except : conn, addr = ser.accept()
|