Raspberry Pi 3 Python 和 Opencv 用于人脸识别

Raspberry Pi 3 Python and Opencv for facial recognition

我在尝试在虚拟环境或正常环境中执行脚本时收到此消息 Python shell。

File "/home/pi/facesample1.py", line 10, in <module>
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
error: /home/pi/opencv-3.1.0/modules/imgproc/src/color.cpp:8000: error: (-215) scn == 3 || scn == 4 in function cvtColor

这是我的代码:

import cv2

#Load an image from file
image = cv2.imread("fronthead.jpg", 1)

#Load a cascade file for detecting faces
face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml')

#Convert to grayscale
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

#Look for faces in the image using the loaded cascade file
faces = face_cascade.detectMultiScale(gray, 1.1, 5)

print "Found "+str(len(faces))+" face(s)"

#Draw a rectangle around every found face
for (x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)

#Save the result image
cv2.imwrite('camresult.jpg',image)

为什么会出现此错误?

您的 image 变量显然不是 3 或 4 通道图像。 因此,cvtColor()无法将其转换为灰度。

检查 image.shape 并查看它 returns 具有正确尺寸的东西(即最后一个尺寸为 3 或 4 的 3D 数组)。

也很有可能imageNone,一般是文件路径错误