网站规划步骤有哪些,游戏外包平台,wordpress5.1用什么php版本,frontpage怎么制作网页该代码提供了一个简单的界面#xff0c;允许用户将视频转换为GIF动画#xff0c;并且可以自定义采样率、GIF帧率和输出大小。修改后的代码将视频帧的大小调整为固定的尺寸#xff0c;并在生成GIF动画时保持这个尺寸。
一、核心代码实现 核心代码如下#xff1a;
import c… 该代码提供了一个简单的界面允许用户将视频转换为GIF动画并且可以自定义采样率、GIF帧率和输出大小。修改后的代码将视频帧的大小调整为固定的尺寸并在生成GIF动画时保持这个尺寸。
一、核心代码实现 核心代码如下
import cv2
import imageio
# 设置视频文件名和输出GIF文件名
videoName ../video/demo.mov
outName ../video/ videoName[:-3] gif# 设置视频帧的缩放比例采样率和GIF动画的帧率
scale 0.25
skipRate 30
gifFps 10
# 打开视频文件并获取视频的参数
cap cv2.VideoCapture(videoName)
videoWidth cap.get(3)
videoHeight cap.get(4)
videoFps cap.get(5)
frameTotal cap.get(7)
frameForOutput frameTotal / skipRate
# 创建GIF动画并逐帧处理
with imageio.get_writer(outName, duration1/gifFps, modeI) as writer:framerCounter 0while True:ret, frame cap.read()if not ret:print(finished)break# 增加帧计数器framerCounter 1# 按照采样率只处理每隔skipRate帧的视频帧if framerCounter % 10 0:# 对视频帧进行缩放frame cv2.resize(frame, (0, 0), fxscale, fyscale)# 在窗口中显示处理后的视频帧cv2.imshow(frame, frame)# 将视频帧从BGR颜色空间转换为RGB颜色空间frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)# 将处理后的视频帧添加到GIF动画中writer.append_data(frame)# 打印当前处理进度ETA百分比print(ETA-, round((framerCounter / frameTotal) * 100, 2), %)else:# 跳过不需要处理的帧continue# 如果按下键盘上的“q”键则停止处理视频if cv2.waitKey(1) ord(q):break
# 释放视频文件
cap.release() 实现的代码逻辑如下
1.导入必要的库cv2OpenCV一个用于图像和视频处理的流行计算机视觉库。 imageio一个用于读取和写入各种图像数据包括视频格式的库。 2.定义视频相关参数设置视频文件名videoName和输出GIF文件名outName。定义视频帧的缩放比例scale默认为0.25即将视频帧的大小缩小为原来的1/4。定义采样率skipRate表示每隔多少帧采样一次视频帧默认为30。定义GIF动画的帧率gifFps表示输出的GIF动画每秒显示多少帧默认为10。 3.打开视频文件并获取视频的参数使用OpenCV的cv2.VideoCapture()打开视频文件并获取视频的宽度、高度、帧率以及总帧数。 4.创建GIF动画并逐帧处理使用imageio.get_writer()创建GIF动画的输出文件并设置帧持续时间为1/GIF帧率以确保动画的播放速度。
二、实现界面和运行程序 可以调整按钮进行调整转化GIF动画的质量展示如下 转化后的GIF图像存储到原来上传文件的位置可自行进行查看。 该代码GUI界面转化为了.exe程序大家可以自己下载下来解压使用。解压后.exe程序存储在了./dist/mian1/文件下找到mian1.exe程序即可。
完整代码下载链接包含.exe应用程序
CSDN