测试首帧调整
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import time
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
@@ -30,8 +32,23 @@ def get_first_frame(video_path, output_path):
|
|||||||
|
|
||||||
# 保存首帧为图片
|
# 保存首帧为图片
|
||||||
try:
|
try:
|
||||||
cv2.imwrite(output_path, frame)
|
# 获取项目根目录
|
||||||
logger.info(f"首帧已保存为: {output_path}")
|
project_root = os.getcwd()
|
||||||
|
project_root_path = Path(project_root).resolve()
|
||||||
|
|
||||||
|
# 创建临时目录
|
||||||
|
temp_dir = project_root_path / "temp"
|
||||||
|
try:
|
||||||
|
temp_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to create temp directory: {e}")
|
||||||
|
raise FileNotFoundError(f"Could not create temp directory: {temp_dir}")
|
||||||
|
|
||||||
|
# 生成唯一的临时文件名
|
||||||
|
timestamp = int(time.time())
|
||||||
|
output_image_path = temp_dir / output_path
|
||||||
|
cv2.imwrite(str(output_image_path), frame)
|
||||||
|
logger.info(f"首帧已保存为: {str(output_image_path)}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"保存首帧图片失败: {e}")
|
logger.error(f"保存首帧图片失败: {e}")
|
||||||
cap.release()
|
cap.release()
|
||||||
@@ -39,7 +56,7 @@ def get_first_frame(video_path, output_path):
|
|||||||
|
|
||||||
# 释放资源
|
# 释放资源
|
||||||
cap.release()
|
cap.release()
|
||||||
return os.path.abspath(output_path)
|
return os.path.abspath(str(output_image_path))
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"提取视频首帧时出错: {e}")
|
logger.error(f"提取视频首帧时出错: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user