Python OpenCV(4.1.2)/io/OpenCV/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)_函数';cvtColor';人脸检测

Python OpenCV(4.1.2)/io/OpenCV/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)_函数';cvtColor';人脸检测,python,opencv,detection,face,Python,Opencv,Detection,Face,#-*-编码:utf-8-*- #人脸识别 #导入库 进口cv2 #加载级联 face_cascade=cv2.CascadeClassifier(“haarcascade/haarcascade_frontalface_default.xml”) eye_cascade=cv2.cascade分类(“Haarcascades/haarcascade_eye.xml”) #定义将执行检测的函数 def检测(灰色,帧): 面=面\级联。检测多尺度(灰色,1.3,5) 对于面中的(x,y,w,h):

#-*-编码:utf-8-*-
#人脸识别
#导入库
进口cv2
#加载级联
face_cascade=cv2.CascadeClassifier(“haarcascade/haarcascade_frontalface_default.xml”)
eye_cascade=cv2.cascade分类(“Haarcascades/haarcascade_eye.xml”)
#定义将执行检测的函数
def检测(灰色,帧):
面=面\级联。检测多尺度(灰色,1.3,5)
对于面中的(x,y,w,h):
cv2.矩形(框架,(x,y),(x+w,y+h),(255,0,0),2)
rol_gray=灰色[y:y+h,x:x+w]
rol_颜色=帧[y:y+h,x:x+w]
眼睛=眼睛级联。检测多尺度(rol_gray,1.1,3)
对于眼睛中的(ex,ey,ew,eh):
cv2.矩形(rol_颜色,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
回程架
#使用网络摄像头进行人脸识别
视频捕获=cv2。视频捕获(0)
尽管如此:
_,frame=video_capture.read()
灰色=cv2.CVT颜色(边框,cv2.COLOR\u BGR2GRAY)
画布=检测(灰色,帧)
cv2.imshow(“视频”,画布)
如果cv2.waitKey(1)&0xFF==ord('q'):
打破
视频捕获.发布()

cv2.destroyAllWindows()
您需要给出级联分类器的完整路径

例如:

#loading the cascades
face_cascade = cv2.CascadeClassifier("/Users/ahmettavli/Downloads/opencv/data/haarcascades/haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifie("/Users/ahmettavli/Downloads/opencv/data/haarcascades/haarcascade_eye.xml")
if len(faces) > 0:
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        rol_gray = gray[y:y + h, x:x + w]
        rol_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(rol_gray, 1.1, 3)
虽然当您更改时,代码仍在运行,但找不到相应的面

因此,您应该添加:

if len(faces) > 0:
例如:

#loading the cascades
face_cascade = cv2.CascadeClassifier("/Users/ahmettavli/Downloads/opencv/data/haarcascades/haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifie("/Users/ahmettavli/Downloads/opencv/data/haarcascades/haarcascade_eye.xml")
if len(faces) > 0:
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        rol_gray = gray[y:y + h, x:x + w]
        rol_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(rol_gray, 1.1, 3)

你能提供一些关于你的问题的背景和一些关于你尝试的解释吗?