[問題] 關於使用OpenCv連續拍照的問題

作者: st40182 (天羽)   2018-07-11 16:18:10
最近在使用OpenCv拍照7
不過在拍照的時候遇到了一個奇怪的問題
程式碼的部分在這裡:
cap = cv2.VideoCapture(2)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)
while True:
ret, frame = cap.read()
target = frame.copy()
cv2.line(frame,(960,0),(960,1080),(255,0,255),1)
cv2.line(frame,(0,540),(1920,540),(255,0,255),1)
#在畫面中劃十字的輔助線
cv2.imshow("capture", frame)
key=cv2.waitKey(1)
if key & 0xFF == ord('c'):
for n in range (10):
cv2.imwrite("%s.jpg" %(time.time()), target )
cv2.waitKey(2000)
elif key & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
cap.release()
cv2.destroyAllWindows()
我希望是說按下c鍵之後
可以每隔2000ms就拍一張照片共拍10張
但是
按下c鍵之後
他的畫面(frame)就暫停不會動了
然後接著就連拍了10張一樣的照片
但是我要拍拍的東西是會動的
想請問這種問題要怎麼解?
作者: kkagt (乎嘎蝦嘎)   2018-07-11 16:37:00
要有跑到 ret, frame = cap.read() 才會讀新的圖片進來你可以把for迴圈拿掉,改成用index控制是否存圖例如在while外面設定一個n=0,然後按下c時設定n=10然後用 if n>0: 存圖並n=n-1
作者: Mchord (Mchord)   2018-07-11 17:31:00
至少要把cap.read()放到迴圈裡面

Links booklink

Contact Us: admin [ a t ] ucptt.com