我正在尝试用Raspberry Pi相机构建一个简单的监控程序,使用OpenCV进行人脸检测 . 这是我的代码:

# -*- coding: utf-8 -*- 
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2

#setting up the camera 
camera = PiCamera()
camera.resolution = (320, 240)
camera.framerate = 30
rawCapture = PiRGBArray(camera, size=(320, 240))

#basic cascade classifier
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#0.1 sec warmup 
time.sleep(0.1)

# capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):  
    image = frame.array
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    #rectangle  loop
    for(x, y, w, h) in faces:
        image = cv2.rectangle(image,(x, y), (x+w, y+h), (255, 0, 0), 2)

    # show the frame [here comes the problem]
    cv2.imshow("Frame", image)
    #   cv2.imshow("Gray", gray
    key = cv2.waitKey(100) & 0xFF

# clear the stream in preparation for the next frame
rawCapture.truncate(0)
# if the `q` key was pressed, break from the loop
if key == ord("q"):
    break

关键是,当我在图像中绘制矩形时,它会出现此错误:

OpenCV错误:imshow中的断言失败(size.width> 0 && size.height> 0),文件/home/pi/opencv-2.4.10/modules/highgui/src/window.cpp,第261行Traceback(最新版本)最后调用):文件“camera2.py”,第36行,cv2.imshow(“Frame”,image)cv2.error:/home/pi/opencv-2.4.10/modules/highgui/src/window.cpp: 261:错误:(-215)size.width> 0 && size.height> 0 in function imshow

如果我把cv2.imshow放在矩形循环之前,它就可以完美地运行 . 此外,打印faces对象显示detectMultiScale实际上正在识别面 . 我该怎么办?

谢谢 .