avi2png
处理HMC-QU数据集记录,每一个avi视频,通过xlsx中记录的初始帧和结束帧进行帧转png,保存在以avi视频名为名的文件夹下。
import os
import cv2
import pandas as pd
# 输入文件夹路径
folder_path = 'avidata'
# 输出文件夹路径
output_folder = 'avipng'
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 读取Excel文件
excel_path = 'du.xlsx'
df = pd.read_excel(excel_path)
def format_numbers(start, end, width=3):
return [f"{num:0{width}}" for num in range(start, end + 1)]
# 生成png的名字id
save_id = format_numbers(1,1000,4)
# 遍历文件夹下所有avi文件
total = 0
for filename in os.listdir(folder_path):
if filename.endswith(".avi"):
video_path = os.path.join(folder_path, filename)
cap = cv2.VideoCapture(video_path)
# 检查视频是否成功打开
if not cap.isOpened():
print(f"Error: Could not open video {filename}")
continue
# 获取视频帧数
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
video_info = df[df['name'] == filename.split(".")[0