采用opencv读取视频并且显示和保存视频

    1. import cv2 as cv
    2. # 读取摄像头的视频
    3. def readVideo():
    4. # 打开电脑摄像头
    5. cap = cv.VideoCapture(0)
    6. # 如果摄像头没有打开
    7. if not cap.isOpened():
    8. print("cannot open video")
    9. exit()
    10. while True:
    11. # 逐桢播放 ret返回值true或者false true表示读取到了 false表示未读取到
    12. ret, frame = cap.read()
    13. if not ret:
    14. # 无法读取到
    15. print("can't receive frame")
    16. break
    17. gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    18. cv.imshow("frame", gray)
    19. # 输入q的时候进行停止
    20. if cv.waitKey(1) == ord('q'):
    21. break
    22. cap.release()
    23. cv.destroyAllWindows()
    24. # 读取摄像头的视频
    25. def writeVideo():
    26. cap = cv.VideoCapture(0)
    27. # 定义编解码器并创建VideoWriter对象
    28. fourcc = cv.VideoWriter_fourcc(*'XVID')
    29. out = cv.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
    30. while cap.isOpened():
    31. ret, frame = cap.read()
    32. if not ret:
    33. print("Can't receive frame (stream end?). Exiting ...")
    34. break
    35. # 图像翻转
    36. frame = cv.flip(frame, -1)
    37. # 写翻转的框架
    38. out.write(frame)
    39. cv.imshow('frame', frame)
    40. if cv.waitKey(1) == ord('q'):
    41. break
    42. # 完成工作后释放所有内容
    43. cap.release()
    44. out.release()
    45. cv.destroyAllWindows()
    46. if __name__ == '__main__':
    47. # readVideo()
    48. writeVideo()