2017-05-28 4 views
0

Wenn ich die Gesichtserkennung Code leite, ich bin vor folgenden Fehler:Lernen Python mit opencv

Traceback (most recent call last): 
File "E:\python program\s1.py", line 11, in <module> ret, frame=cap.read() 
AttributeError: 'numpy.ndarray' object has no attribute 'read' 

Wahrscheinlich, wenn ich Code leite die haben ret, frame=cap.read() diese Art von Code, den ich Fehler.

Bitte Lösung bereitstellen.

Mein vollständige Code wird dieser Code Ich habe nur von der Website genommen:

import numpy as np 
import cv2 

face_cascade = cv2.CascadeClassifier('..\haarcascade_frontalface_default.xml') 
cap=cv2.VideoCapture(0) 

scaling_factor=0.5 

while True: 
    ret, frame=cap.read() 
    frame = cv2.resize(frame, None, fx=scaling_factor, fy=scaling_factor, 
    interpolation=cv2.INTER_AREA) 
    gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 

    face_rects=face_cascade.detectMultiScale(gray, 1.3,5) 
    for(x,y,w,h) in face_rects: 
     cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0),3) 

    cv2.imshow('Face Detector', frame) 

    c=cv2.waitKey(1) 
    if c==27: 
     break 

cap.release() 
cv2.destroyAllWindows() 
+2

Willkommen bei Stackoverflow. Bitte angegeben werden sollte bearbeiten Frage und behebe die Einrückung, es ist unwahrscheinlich, dass es einen Unterschied für deine Frage macht, aber es ist wichtig in Python, wie du weißt ... Und an die Stammgäste hier: – alexis

+0

Bitte lies das ["Was soll ich tun, wenn jemand meine Frage beantwortet ? "] (http://stackoverflow.com/help/someone-answers). – thewaywewere

Antwort

0

Haben Sie Ihre Webcam funktioniert überprüft? Der Fehler sagt cv2.VideoCapture(0) Objekt wurde nicht als cap erstellt, so dass es kein cap.read() Attribut ist. Sie können die Webcam-Nr. zu cv2.VideoCapture(-1) für einen Versuch, wenn Ihre Webcam mit anderen Anwendungen funktioniert.

Neben dem Fehler, der face_cascade Datenweg in Schrägstrich „/“ als (../haarcascade_frontalface_default.xml) oder Doppelschrägstrich „\\ als (..\\haarcascade_frontalface_default.xml) in Windows OS statt Backslash“ \“.