【问题标题】:How to solve this error "cv2.COLOR_BGR2GRAY"? [duplicate]如何解决此错误“cv2.COLOR_BGR2GRAY”? [复制]
【发布时间】:2020-07-07 19:48:21
【问题描述】:

我正在输入此代码进行人脸检测:

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()

但是当我运行这段代码时,它给出了这个错误:

Traceback(最近一次调用最后一次): 文件“C:/Users/Nisha/Documents/Face detection/Face detection.py”,第 9 行,在 灰色 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

请详细说明我如何消除此错误或说明任何更改或说明任何不会产生错误的替代代码,我也可以完成我的工作。实际上,我是 IT 新手,所以我在小代码中产生了很多错误,所以请指导我,以便我继续前进。

【问题讨论】:

  • 您传递给cvtColor - imgMat 为空或格式错误。检查路径,它似乎无效。

标签: python opencv face-detection


【解决方案1】:

您要读取的文件丢失:

img = cv2.imread('Documents\Face detection\face1.jpg')

print( img.shape ) 放在此行之后,以确保正确读取您的图像。

如果您在 Windows 中工作,我建议您也使用print('Documents\Face detection\face1.jpg') 并查看您要读取的文件。我打赌你会丢失所有路径分隔符。

【讨论】:

    【解决方案2】:

    尝试使用此代码读取图像文件:

    import os
    path = os.getcwd()
    
    img = cv2.imread(path+'Documents\Face detection\face1.jpg')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2020-01-21
      • 2017-01-14
      • 2021-11-29
      • 2012-05-14
      相关资源
      最近更新 更多