RealBasicVSR高清处理视频
2023-12-17 23:43:56
autodl做了镜像:高清RealBasicVSR
首先在剪映将视频剪好导出,最多是720像素的,不然后面超分的时候会爆显存。剪映视频也最好是双数帧数结尾的,不然超分的时候单数图片会报错->RuntimeError: non-empty 3D or 4D input tensor expected but got ndim: 4
首先使用脚本把视频分割成图片
import cv2
import os
# 视频文件所在目录
video_directory = r'D:\hc\dongtaibizhi\test'
# 获取目录中所有的mp4文件
video_files = [f for f in os.listdir(video_directory) if f.endswith('.mp4')]
for video_file in video_files:
video_path = os.path.join(video_directory, video_file)
# 创建以视频名命名的文件夹来保存图片
output_folder = os.path.join(video_directory, os.path.splitext(video_file)[0])
os.makedirs(output_folder, exist_ok=True)
# 打开视频文件
cap = cv2.VideoCapture(video_path)
# 获取视频的原始帧率
original_fps = int(cap.get(cv2.CAP_PROP_FPS))
# 计算每秒需要提取的帧数
frames_per_second = 30
# 计算跳帧间隔
frame_skip = max(1, original_fps // frames_per_second)
# 初始化帧计数器
frame_count = 0
while True:
ret, frame = cap.read()
if not ret:
break
if frame_count % frame_skip == 0:
# 保存图片
image_filename = os.path.join(output_folder, f'frame_{frame_count:04d}.jpg')
cv2.imwrite(image_filename, frame)
frame_count += 1
# 释放视频对象
cap.release()
print(f'已成功保存 {video_file} 的图片到 {output_folder}')
比如说现在图片集都放在ss3720这个文件夹里,那么运行命令进行图片高清化
python inference_realbasicvsr.py configs/realbasicvsr_x4.py checkpoints/RealBasicVSR_x4.pth data/ss3720 results/ss3720 --max_seq_len=2
超分后使用~/RealBasicVSR-master/results,下的脚本进行图片合成视频(要改脚本里的文件路径)
python image2video.py
参考网址:https://blog.csdn.net/zhiweihongyan1/article/details/124645615
文章来源:https://blog.csdn.net/m0_50685012/article/details/135051533
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!