Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 网络摄像头窗口在尝试检测人脸时总是崩溃_Python_Opencv_Cv2_Haar Classifier - Fatal编程技术网

Python 网络摄像头窗口在尝试检测人脸时总是崩溃

Python 网络摄像头窗口在尝试检测人脸时总是崩溃,python,opencv,cv2,haar-classifier,Python,Opencv,Cv2,Haar Classifier,我正在尝试制作一个简单的haar cascade程序来检测人脸 faceCascade = cv2.CascadeClassifier('D:\\Python\\Python37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalcatface.xml') body_cascade = cv2.CascadeClassifier('haarcascade_upperbody.xml') video_capture = cv2.VideoCapt

我正在尝试制作一个简单的haar cascade程序来检测人脸

faceCascade = cv2.CascadeClassifier('D:\\Python\\Python37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalcatface.xml')
body_cascade = cv2.CascadeClassifier('haarcascade_upperbody.xml')
video_capture = cv2.VideoCapture(0)
img_counter = 0

while True:
    # Capture frame-by-frame
    ret, frame = video_capture.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.5,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.imshow('FaceDetection', frame)
    k = input()
    # ESC Pressed
    if k % 256 == 27:
        break

video_capture.release()
cv2.destroyAllWindows() 
但每次我启动它,我的网络摄像头窗口都会冻结并崩溃:(
我的电脑功能足够强大,为什么会发生这种情况?

我对您的代码做了一些更改。对于人脸,请使用haarcascade\u frontalface\u default.xml;对于猫脸,请使用haarcascade\u frontalcatface.xml。请尝试下面的代码,它会非常有用:)


在不进行处理的情况下运行网络摄像头,并在单帧上运行处理功能,以首先找到问题。
import cv2
#faceCascade = cv2.CascadeClassifier('D:\\Python\\Python37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalcatface.xml')
faceCascade = cv2.CascadeClassifier('D:\\Python\\Python37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')

body_cascade = cv2.CascadeClassifier('haarcascade_upperbody.xml')
video_capture = cv2.VideoCapture(0)
img_counter = 0

while True:

    # Capture frame-by-frame
    ret, frame = video_capture.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.5,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.imshow('FaceDetection', frame)

    #k = input()
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break
    # ESC Pressed
    # if k % 256 == 27:
        # break


video_capture.release()
cv2.destroyAllWindows()