优化后的代码如下:

import cv2

def process_video(input_file, output_file):
    vc = cv2.VideoCapture(input_file)
    fps = vc.get(cv2.CAP_PROP_FPS)
    size = (int(vc.get(cv2.CAP_PROP_FRAME_WIDTH)), int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT)))
    vw = cv2.VideoWriter(output_file, cv2.VideoWriter_fourcc(*'XVID'), fps, size)
    
    while True:
        success, frame = vc.read()
        if not success:
            break
        vw.write(frame)
        cv2.imshow('mycamera', frame)
        if cv2.waitKey(1) == 27:
            break
    
    vc.release()
    vw.release()
    cv2.destroyAllWindows()

process_video('1.mp4', 'Jichenp.avi')

在优化后的代码中,我将视频处理的逻辑封装在一个名为process_video的函数中。这样做的好处是可以方便地重复使用代码,并且使代码更加清晰易读。在函数中,我对视频进行读取并写入到输出文件中。同时,在每一帧的处理过程中,我也进行了按键检测,当按下ESC键时,程序会退出循环。最后,释放资源并关闭窗口。

import cv2vc=cv2VideoCapture1mp4fps=30size=intvcgetcv2CAP_PROP_FRAME_WIDTH intvcgetcv2CAP_PROP_FRAME_HEIGHTvw=cv2VideoWriterJichenpavicv2VideoWriter_fourccXVIDfpssizesuccessframe=vcreadwhile succes

原文地址: https://www.cveoy.top/t/topic/jfLI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录