OpenCV Python 在拍摄之前查看网络摄像头提要?
OpenCV Python View webcam feed before it takes a snap?
所以我的代码应该使用 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
你只在检测发生时显示图像,你需要将你的 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)
所以我的代码应该使用 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
你只在检测发生时显示图像,你需要将你的 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)