【问题标题】:detect closed eyes after it closed 3 seconds闭眼 3 秒后检测闭眼
【发布时间】:2016-09-09 09:16:49
【问题描述】:

我想在 python 中使用 openCV 在闭眼 3 秒后检测闭眼。但是当我使用 time.sleep(1) 计算时间时,整个程序就停止了。 但是程序必须连续运行才能检测到闭眼。 我认为可以在python中使用线程

 def get_frame(self):

    success, image = self.video.read()
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.3,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )



    while True:
        for (x, y, w, h) in faces:
            cv2.rectangle(image, (x, y), (x + w, y + h), (255, 255, 0), 2)

            roi_gray = gray[y:y+h, x:x+w]
            roi_color = image[y:y+h, x:x+w]
            eyes = eyesCascade.detectMultiScale(roi_gray)
            if eyes is not():
                for (ex,ey,ew,eh) in eyes:
                    cv2.rectangle(roi_color,(ex -10 ,ey - 10),(ex+ew + 10,ey+eh + 10),(0,255,0),2)
                    twoeyes = twoeyesCascade.detectMultiScale(roi_gray)
                    checkyeys = 0
                    if twoeyes is not():
                        for (exx,eyy,eww,ehh) in twoeyes:
                            checkyeys = 0
                            led.write(1)
                            cv2.rectangle(roi_color,(exx-5 ,eyy -5  ),(exx+eww -5,eyy+ehh -5 ),(0,0, 255),2)
                    else:
                        #when eyes close
                        print "------------------------------------"
                        for i in xrange(10):
                            time.sleep(1)
                            if(i % 3 == 0){
                                #eyes close in 3 seconds
                                print "Warning"
                            }
                            print i
        ret, jpeg = cv2.imencode('.jpg', image)
        self.string = jpeg.tostring()
        self._image = image
        return jpeg.tostring()

感谢您的帮助!

【问题讨论】:

  • 您是否发现任何错误信息?

标签: python opencv


【解决方案1】:

尝试改变

if(i % 3 == 0){
   #eyes close in 3 seconds
   print "Warning"
}

到

if i % 3 == 0:
   #eyes close in 3 seconds
   print "Warning"

【讨论】:

  • 但是程序因为time.sleep(1)而停止了
  • 它是否还在停止(在语法更正之后)?它是否显示任何消息?
  • 您是否包含import time 声明?
  • 这里是我导入的库: import cv2 import time import sys import numpy as np import os import mraa from datetime import datetime import thread
  • 它是否还在停止(在语法更正之后)?它是否显示任何消息?
猜你喜欢
  • 1970-01-01
  • 2017-05-11
  • 2015-05-02
  • 2012-09-21
  • 2020-01-14
  • 2015-06-17
  • 2014-12-12
  • 2015-11-27
  • 2012-10-26
相关资源
最近更新 更多