Ich habe in Django eine Webanwendung entwickelt, die eine Ansichtsmethode enthält, die den OpevCV-Code enthält, der beim Auslösen die Benutzer-Webcam öffnet, um ihr Gesicht zu erkennen. Diese App funktioniert auf meinem lokalen Server einwandfrei, aber wenn ich sie auf PythonAnywhere gehostet habe, heißt es, dass die Kamera nicht gefunden wurde, da mein PA-Hosting keine Kamera bedient.
Also schlug mir jemand vor, die Webcam über Javascript zu öffnen, da sie sich mit dem Client-Computer befasst, und dann ihren Feed an den Server-Computer weiterzuleiten, der mein Hosting ist.
Aber da ich ein Anfänger in Python bin, kann ich nicht herausfinden, wie ich die obige Aufgabe ausführen soll. Ich habe diesen Teil von js Code gefunden, aber ich weiß nicht, wie und wo ich ihn in meine Django App einfügen soll.
Code zum Abrufen des Feeds mit Javascript
var video = document.querySelector("#videoElement");
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({video: true}).then(function(stream) {
video.srcObject = stream;
}).catch(function(err0r) {
console.log("Something went wrong!");
});
}
Mein Python-Code zum Öffnen der Kamera und zum Erkennen von Gesichtern lautet wie folgt (funktioniert auf dem lokalen Server).
import cv2
cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
cam = cv2.VideoCapture(0)
while True:
ret, frame = cam.read()
frame = cv2.flip(frame, 1)
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=3)
for (x, y, w, h) in faces:
cropped = cv2.resize(frame[y:y+h, x:x+w], (198,198))
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
cv2.imshow('Stream', frame)
Jede Hilfe wird geschätzt. Vielen Dank im Voraus