darknet_video.py 修改
视频播放,针对画面帧进行截图保存.
需求效果:
1.按空格键可以暂停视频(暂停视频的同时你的进程也应该暂停)
2.暂停后,按S键可以保存当前帧
3.视频检测过程中,按S键可以保存当前帧
难点:
1.如何实现进程可以跑起来,不报错
2.如何实现当按键后可以同时暂停视频和进程
3.如何实现暂停的同时也可以按S键保存当前帧
做法:
1.可以将main 函数中,队列里设置maxSize=1去掉
2.将main 函数里的darknet_image = darknet.make_image(width, height, 3)
注释掉
3.将上面注释的那句加在video_capture函数里
就可以实现视频播放检测了
按键暂停和保存其实好做,就是利用waitkey
代码放在这里,这个按键保存暂停代码肯定要放在drawing函数里面啦
if key == ord(' '):
pause_flag = True
while(pause_flag):
skey = cv2.waitKey(1)
if skey == ord('s'):
cv2.imwrite('/home/sxl/Pictures/'+filename+'.jpg',image)
elif skey == ord(' '):
pause_flag = False
cv2.waitKey(0)
elif key == ord('s'):
cv2.imwrite('/home/sxl/Pictures/'+filename+'.jpg',image)
但是,如何实现进程和视频的同时暂停呢
方法其实是,一开始main函数里那个队列,maxSize=1不能去掉!
这样,最后就可以实现完美播放和暂停
完整代码的话,如果有需要,可以留言邮箱,我发给你!