English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Kürzlich habe ich mit meinen Studenten einen URTP-Projektentwurf durchgeführt, bei dem ein Gesichtserkennungssystem erforderlich ist. Da OpenCV inzwischen2.X-Version, daher möchte ich den alten nicht verwenden1.X-Version des Codes, und die auf der Website vorhandenen Codes sind1.X-Version des Codes, versuchen Sie, einen Abschnitt selbst zu schreiben2.X-Version des Codes, wiederholte Durchsicht von Unterlagen, heute endlich erfolgreich getestet(offensichtlich2.X-Version des Codes ist einfacher als1.X-Code ist einfacher),um allen eine Referenz zu bieten, der Code ist wie folgt:(2017Jahr5Monat12Tag in Python3,6,1Nachfolgend eine einfache Änderung)
import cv2 import numpy as np cv2.namedWindow("test")#Nennen Sie ein Fenster cap=cv2.VideoCapture(1#Öffnen1Kamera success, frame = cap.read()#Lesen Sie ein Frame Bild, der vorherige Rückgabewert ist ob erfolgreich, der nächste Rückgabewert ist das Bild selbst color = (0,0,0)#Setzen Sie die Farbe des Gesichtsfeldes classfier=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")#Definieren Sie den Klassifikator while success: success, frame = cap.read() size=frame.shape[:2#Erhalten Sie die Größe des aktuellen Farbbildes image=np.zeros(size,dtype=np.float16#Definieren Sie eine Graustufenbildmatrix der Größe des aktuellen Frames , image = cv2, .cvtColor(frame, cv2, COLOR_BGR2, GRAY)#Konvertiere das aktuelle Bild in ein Graustufenbild (hier wurde eine Änderung vorgenommen) cv2.equalizeHist(image, image)#Gleitender Histogrammvergleich für Graustufenbilder #Die folgenden drei Zeilen stellen die minimale Bildgröße ein divisor=8 , w = size minSize=(int(w/, int(h/divisor))#Hier wurde eine Rundungsfunktion hinzugefügt .detectMultiScale(image, 1,2, 2, cv2.CASCADE_SCALE_IMAGE,minSize)#Gesichtserkennung if len(faceRects)>0:#Wenn die Länge des Gesichtarrays größer als 0 ist for faceRect in faceRects: #Zeichne einen Rechteckrahmen um jedes Gesicht , y, w, h = faceRect cv2.rectangle(frame, (x, y), (x+, y+, color) cv2.imshow("test", frame)#Zeige das Bild an key=cv2.waitKey(10) c = chr(key & 255) if c in ['q', 'Q', chr(27]): break cv2.destroyWindow("test")
Detailliertes Bild:
Das war der Inhalt dieses Artikels. Wir hoffen, er hat Ihnen bei Ihrem Lernen geholfen und wir hoffen, dass Sie die Anleitung für Lärm stark unterstützen.
Erklärung: Der Inhalt dieses Artikels stammt aus dem Internet und ist urheberrechtlich geschützt. Der Inhalt wurde von Internetnutzern selbstständig bereitgestellt und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht von Hand bearbeitet. Diese Website übernimmt keine rechtlichen Verantwortlichkeiten. Wenn Sie verdächtige urheberrechtliche Inhalte finden, freuen wir uns über eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @, wenn Sie eine Beschwerde einreichen, und fügen Sie relevante Beweise bei. Bei nachgewiesener Täuschung wird diese Website den fraglichen Infringers immediately löschen.