import cv2vc=cv2VideoCapture1mp4fps=30size=intvcgetcv2CAP_PROP_FRAME_WIDTH intvcgetcv2CAP_PROP_FRAME_HEIGHTvw=cv2VideoWriterJichenpavicv2VideoWriter_fourccXVIDfpssizesuccessframe=vcreadwhile succes
优化后的代码如下:
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键时,程序会退出循环。最后,释放资源并关闭窗口。
原文地址: https://www.cveoy.top/t/topic/jfLI 著作权归作者所有。请勿转载和采集!