[英]Real time face detection OpenCV, Python
I am trying to make a basic program for a real time face detection. 我正在尝试制作一个实时人脸检测的基本程序。 Here's my code (I am a newbie in OpenCV) :
这是我的代码(我是OpenCV的新手):
import numpy as np
import cv2
cam = cv2.VideoCapture(0)
name = 'detect'
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cv2.namedWindow(name, cv2.WINDOW_AUTOSIZE)
while True:
s, img = cam.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#print s
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow(name, img)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyWindow("Detect")
break
But when I run this code I get this error : 但是,当我运行此代码时,我收到此错误:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/buildd/opencv-2.4.2+dfsg/modules/core/src/array.cpp, line 2482
Traceback (most recent call last):
File "mytry.py", line 27, in <module>
cv2.imshow(name, img)
cv2.error: /build/buildd/opencv-2.4.2+dfsg/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat
I am a newbie in OpenCV ! 我是OpenCV的新手! Please tell me what is wrong with the code, why does this error arises what changes should I make ?
请告诉我代码有什么问题,为什么会出现这个错误我应该做出哪些更改?
Your line: 你的路线:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
will draw a rectangle in the image, but the return value will be None, so img changes to None and cannot be drawn. 将在图像中绘制一个矩形,但返回值将为None,因此img更改为None并且无法绘制。
Try 尝试
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.