erst einmal zur Ausgangslage:

Zur Zeit schreibe ich meine Masterarbeit im Bereich Softwareentwicklung zur Gesichtserkennung. Da ich eigentlich Betriebswirtschaftslehre studiere bin ich was die Programmierung anbelangt Anfänger. Aber ich möchte mich mit dem Thema auseinander setzen, weil aufbauend auf diesem Programm eine "Business Intelligence" eingerichtet werden soll, die die Zeitstempel grafisch darstellt.
Wie gesagt, es soll ein einfaches Programm werden um das zu veranschaulichen, was ich innerhalb meiner Masterthesis schreibe.
So sollte es funktionieren:
1. Gesicht wird erkannt
2. Es werden Bilder gemacht und in einem Ordner abgelegt
3. Gesichtserkennung greift darauf zu und schaut ob die Person innerhalb der Ordner vorhanden ist. Wenn ja: Ausgabe Name, wenn nein: Ausgabe unbekannt
4. Später soll alles auf eine Datenbank gelegt werden (Vorname, Name, Zeitstempel)
5. Business Intelligence greift auf Datenbank zu und gibt grafisch die Zeitstempel aus
Mein Vorgehen ist im Moment:
1. Gesichtsdetektion schreiben: Habe ich realisiert
2. Gesichtsspeicherung via Webcam: Dort hänge ich momentan
Es soll der Name eingegeben werden und anhand dieses Namens ein neuer Ordner erstellt werden worin die 200 Trainingsbilder eingepflegt werden.
Dies funktioniert aber nicht. Er hat Probleme in dieser Zeile = cv2.imwrite(path + str(ID) + "." + str(count) + ".jpg")
Fehler ist:
Bitte Name eingeben: Dominik
Traceback (most recent call last):
File "C:/Users/Dominik/Desktop/PythonMasterarbeit/GesichtsspeicherungWebcam.py", line 27, in <module>
cv2.imwrite(path + str(ID) + "." + str(count) + ".jpg")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
[ INFO:0] Initialize OpenCL runtime...
Quellcode:
import cv2
import os
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('Haar/haarcascade_eye.xml')
ID = input("Bitte Vorname eingeben: ")
count = 0
cam = cv2.VideoCapture(0)
path = os.makedirs("/" + ID)
while (cam.isOpened()):
ret, img_frame= cam.read()
gray = cv2.cvtColor(img_frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
cv2.rectangle(gray, (x, y), (x + w, y + h), (255, 255, 255), 2)
count +=1
cv2.imwrite(path + str(ID) + "." + str(count) + ".jpg")
cv2.imshow("Gesichtsspeicherung",img_frame)
if cv2.waitkey(100) & 0xFF == ord("q"):
break
elif count>200:
break
cam.release()
cv2.destroyAllWindows()
Da ich das erste Mal in einem Forum unterwegs bin hoffe ich, das ich alle Informationen aufgeschrieben habe und ihr mir weiter helfen könnt.
Vielen Dank schon mal!