[问题] 关于使用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