代码拉取完成,页面将自动刷新
# encoding:UTF-*
import os
import cv2
from PIL import Image
import easyocr
def extract_frames(input_folder, output_folder):
# 检查输出文件夹是否存在,如果不存在则创建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历指定文件夹内的所有文件
for filename in os.listdir(input_folder):
if filename.endswith(".mp4"):
video_path = os.path.join(input_folder, filename)
# 使用OpenCV打开视频文件
cap = cv2.VideoCapture(video_path)
count = 0
while cap.isOpened():
# 读取视频的帧
ret, frame = cap.read()
# 每十帧保存一次截图
if count % 40 == 0:
# 获取视频当前的时间(以秒为单位)
current_time = cap.get(cv2.CAP_PROP_POS_MSEC) / 1000
# 将时间转换为字符串,并替换文件名中的非法字符
time_str = str(current_time).replace(".", "_")
output_filename = f"{filename}_{time_str}.jpg"
output_path = os.path.join(output_folder, output_filename)
cv2.imwrite(output_path, frame)
count += 1
if not ret:
break
cap.release()
def screenshot_images(folder_path, save_path, left, top, right, bottom):
# 遍历指定文件夹内的所有文件
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
# 判断文件是否为图片文件
if os.path.isfile(file_path) and filename.lower().endswith(('.png', '.jpg', '.jpeg')):
# 打开图片文件
image = Image.open(file_path)
# 裁剪图片
cropped_image = image.crop((left, top, right, bottom))
# 保存截图到指定文件夹
save_file_path = os.path.join(save_path, filename)
cropped_image.save(save_file_path)
print(f"已保存截图: {save_file_path}")
def extract_text_from_images(folder_path, save_path):
reader = easyocr.Reader(['ch_sim', 'en']) # 创建OCR阅读器,指定识别语言为简体中文和英文
texts = [] # 存储提取的文字内容
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
if os.path.isfile(file_path) and filename.lower().endswith(('.png', '.jpg', '.jpeg')):
try:
result = reader.readtext(file_path) # 进行OCR识别
text = ' '.join([res[1] for res in result]) # 提取识别结果中的文字内容
texts.append(text)
print(f"已提取文字: {text}")
except Exception as e:
print(f"提取文字失败: {e}")
try:
with open(save_path, "w", encoding="utf-8") as file:
file.write("\n".join(texts) + "\n")
print(f"文字内容已保存到文件: {save_path}")
except Exception as e:
print(f"保存文字内容失败: {e}")
if __name__ == '__main__':
# 指定输入文件夹和输出文件夹的路径
input_folder = "" #视频输入路径
output_folder = "" #前置截图输出路径
# 调用函数进行截图
extract_frames(input_folder, output_folder)
folder_path = output_folder #前置截图输入路径
OCRout_path = "C:/Users/suzumiya/Downloads/Video/pic/cut" #目标截图输出路径
# 指定截图的矩形范围 (left, top, right, bottom)
left = 0
top = 547
right = 1280
bottom = 640
# 调用函数进行截图
screenshot_images(folder_path, OCRout_path, left, top, right, bottom)
OCRout_path = "" #OCR信息输入路径
save_path = ""#OCR信息输出路径
extract_text_from_images(OCRout_path, save_path)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。