【问题标题】:OpenCV Python View webcam feed before it takes a snap?OpenCV Python 在拍摄之前查看网络摄像头提要?
【发布时间】:2018-05-19 10:13:10
【问题描述】:

所以我的代码应该使用 opencv 检测到一个对象,并且一旦检测到它就应该对其进行捕捉。它做得很好......但是它只是进入网络摄像头并且没有向我显示网络摄像头提要。当它检测到对象时,它会拍照并显示图像。

我想要的是查看网络摄像头提要,直到它检测到对象......我该怎么做?

这是我的代码:

import cv2
cascade = cv2.CascadeClassifier('xcascade.xml')
cap = cv2.VideoCapture(1)

num = 0
while num<1000:
    ret, img = cap.read()
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    cas = cascade.detectMultiScale(gray, 10, 10)
    for(x,y,w,h) in cas:
        font = cv2.FONT_HERSHEY_SIMPLEX
        cv2.rectangle(img,(x,y), (x+w,y+h),(255,255,0),5)
        cv2.putText(img, 'Something',(x,y-120), font, 1.5, (0,255,255),5, cv2.LINE_AA)
        num = num+1
        cv2.imshow('img',img)
        cv2.waitKey(1000)
        cap.release()
        cv2.desrtoyAllWindows()
        break

【问题讨论】:

    标签: python python-3.x opencv


    【解决方案1】:

    您仅在检测发生时显示图像,您需要将您的 imshow 放在 for 循环之外。

    import cv2
    cascade = cv2.CascadeClassifier('xcascade.xml')
    cap = cv2.VideoCapture(1)
    
    num = 0
    while num<1000:
        ret, img = cap.read()
        gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    
        cas = cascade.detectMultiScale(gray, 10, 10)
        for(x,y,w,h) in cas:
            font = cv2.FONT_HERSHEY_SIMPLEX
            cv2.rectangle(img,(x,y), (x+w,y+h),(255,255,0),5)
            cv2.putText(img, 'Something',(x,y-120), font, 1.5, (0,255,255),5, cv2.LINE_AA)
            num = num+1
    
            cv2.imshow('img',img)
            cv2.waitKey(1000)
            cap.release()
            cv2.desrtoyAllWindows()
            break
    
        cv2.imshow('img',img)
        cv2.waitKey(1000)
    

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2014-09-28
      相关资源
      最近更新 更多