【发布时间】:2020-03-17 21:31:42
【问题描述】:
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_frontalcatface.xml')
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
face = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in face:
cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 255), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = frame[y:y+h, x:x+w]
eye = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eye:
cv2.rectangle(roi_color, (ex,ey),(ex+ew, ey_eh), (0,255,0),2)
cv2.imshow('Face', frame)
k = cv2.waitKey(1)
if k ==27:
break
cv2.destroyAllWindows()
cap.release()
我一直收到这个错误
错误:OpenCV(3.4.5) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.cpp:181: 错误:(-215:Assertion failed) !_src.empty() in function 'cvtColor'
【问题讨论】:
-
请提供完整的错误回溯
-
问题似乎是
frame。它要么是空的,要么是格式错误的。 -
您的网络摄像头很可能有问题。 OpenCV 无法访问其流。
-
VideoCapture read() 方法返回帧读取成功/失败的布尔值 - 代码中的下划线。使用该值并在代码中自己处理错误是一种很好的做法。
标签: python opencv tensorflow anaconda