Python 如何解决这个错误;cv2.颜色“BGR2GRAY”是什么;?
我输入此代码用于人脸检测:Python 如何解决这个错误;cv2.颜色“BGR2GRAY”是什么;?,python,opencv,face-detection,Python,Opencv,Face Detection,我输入此代码用于人脸检测: import cv2 face_cascade = cv2.CascadeClassifier('venv/Lib/site- packages/cv2/data/haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('venv/Lib/site-packages/cv2/data/haarcascade_eye.xml') img = cv2.imread('Docu
import cv2
face_cascade = cv2.CascadeClassifier('venv/Lib/site-
packages/cv2/data/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('venv/Lib/site-packages/cv2/data/haarcascade_eye.xml')
img = cv2.imread('Documents\Face detection\face1.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
roi_gray = gray[y:y + h, x:x + w]
roi_color = img[y:y + h, x:x + w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
但当我运行此代码时,它给出了以下错误:
回溯(最近一次呼叫最后一次):
文件“C:/Users/Nisha/Documents/Face detection/Face detection.py”,第9行,在
灰色=cv2.CVT颜色(img,cv2.COLOR\U BGR2GRAY)
cv2.error:OpenCV(4.2.0)C:\projects\opencvpython\OpenCV\modules\imgproc\src\color.cpp:182:error:(-215:断言失败)_函数“cv::cvtColor”中的src.empty()
请详细告诉我如何摆脱这个错误,或告诉任何变化,或告诉任何替代代码,这不会产生错误,我也可以完成我的工作。事实上,我是IT新手,因此在小代码中会产生许多错误,因此请指导我,以便我可以继续前进。您尝试读取的文件丢失:
img = cv2.imread('Documents\Face detection\face1.jpg')
将打印(img.shape)
放在这一行后面,以确保正确读取图像
如果您在Windows中工作,我建议您也
打印('Documents\Face detection\face1.jpg')
,并查看您试图读取的文件。我打赌您丢失了所有路径分隔符。尝试使用以下代码读取图像文件:
import os
path = os.getcwd()
img = cv2.imread(path+'Documents\Face detection\face1.jpg')
传递给
cvtColor
-img
的Mat
为空或格式不正确。检查路径,它似乎无效。