这个代码块(在views.py中)由URL触发.导入cv2时没有问题.(使用virtualenvwrapper尝试的同样的事情显示相同的结果(添加所有必需的库之后)相机初始化和....
def caminit(request): cam.open(0) img=cam.read() cv2.imwrite("snap"+".jpg",img[1]) cam.release() #takes the instant pic faceCascade =cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
检查时 print type(faceCascade)
给出
.对象已创建.
继续前进 caminit
image = cv2.imread("snap.jpg") # when checked with image.dtype it shows correct uint8 also image.shape shows correct data {Eg: (480, 640, 3)} gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Detect faces in the image faces = faceCascade.detectMultiScale( gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30), flags = cv2.cv.CV_HAAR_SCALE_IMAGE )
现在关键部分"寻找面孔的数量"
print "Found {0} faces!".format(len(faces))
终端输出:
Found 0 faces!
为什么会这样?
我已经尝试通过在终端打印进行调试.我在评论中提到过它们.正在使用的相机是我的笔记本电脑(HP羡慕)相机,其分辨率为640x480.
我怀疑有什么需要中进行调整faceCascade.detectMultiScale(..)
块(参数).我试图与scalefactor = 1.000001
和minNeighbors = 3
无济于事.