opencvpython在抓拍之前查看网络摄像头提要?

2024-06-08 20:36:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的代码应该用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

Tags: 对象代码网络imgcv2opencvnumcascade
1条回答
网友
1楼 · 发布于 2024-06-08 20:36:23

只有在检测发生时才显示图像,需要将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)

相关问题 更多 >