OpenCV 图片转视频

发布时间:2026/7/10 12:57:40
OpenCV 图片转视频 1. 什么是视频1.1. 什么是帧帧的快慢是什么影响什么视频的基本组成部分是帧 (frame)即一系列静态图像这些图像在一定速率下以连续的方式播放形成动态图像例如30帧/秒。视频每秒的帧数被称为帧率 (Frame Rate)通常用 fps (Frames Per Second) 表示。例如30fps表示视频每秒钟包含30帧图像。帧率决定了视频的流畅度和真实感。较高的帧率可以使视频看起来更加流畅因为它们可以更快地刷新图像。例如60fps的视频比30fps的视频看起来更加流畅。此外较高的帧率还可以减少视频中的模糊和颤动因为它们可以更好地捕捉运动。但较高的帧率会导致文件变大和编解码更复杂因为需要处理更多的帧图像。总的来说选择正确的帧率可以提高视频的观看体验并确保最佳的视觉效果。通常电影和电视节目的帧率为24fps或30fps而游戏和动画的帧率通常为60fps现在的一般更高120fp很常见。1.2. 帧是什么什么是视频分辨率分辨率与什么有关系每个帧由像素组成像素是图像中最小的单元可以包含颜色和亮度信息。视频分辨率是指视频中每个帧的像素数量通常用水平像素数和垂直像素数表示。例如分辨率为1920x1080的视频表示每帧有1920个水平像素和1080个垂直像素。分辨率取决于采集和播放设备。摄像设备的分辨率摄像设备的分辨率决定了视频中每个帧的像素数量。高分辨率的摄像设备可以捕捉更多的像素从而产生更高分辨率的视频。播放设备的分辨率播放设备的分辨率决定了视频的最终分辨率。如果视频的分辨率高于播放设备的分辨率那么视频将被缩小以适应播放设备从而可能导致图像失真和模糊。2. C#include opencv2/core.hpp #include opencv2/highgui.hpp cv::VideoWriter video_creator_; // 打开设备 video_creator_.open(video_filename_, CV_FOURCC(D, I, V, X), frame_rate, cv::Size(width, height), true); // 写入数据 for (const cv::Mat img : images) { video_creator_.write(img); } // 关闭设备 video_creator_.release();3. Pythonimport numpy as np import cv2 cap cv2.VideoCapture(0) # 定义编码方式创建VideoWriter对象 fourcc cv2.VideoWriter_fourcc(*XVID) out cv2.VideoWriter(../imgs/output_video.avi, fourcc, 20.0, (640, 480)) # 当cap打开状态执行 while cap.isOpened(): ret, frame cap.read() if not ret: print(Cant receive frame (stream end?). Exiting ...) break # 写入文件 out.write(frame) cv2.imshow(frame, frame) if cv2.waitKey(1) ord(q): break # Release everything if job is finished cap.release() out.release() cv2.destroyAllWindows()参考文献【opencv图像处理】(Gui Features in OpenCV) 1-1摄像头采集摄像头视频读取视频帧录制视频_opencv摄像头图像采集-CSDN博客