图片集
万物离不开实践, 让我们的实践从这个简单的项目开始吧。
一、准备
(1)配置要求:python(如果愿意打很长的代码, c++也可以), 剪映(类似软件即可), 一个视频;(建议下载一个Python编译器,当然可以不下,用python自带的IDLE即可(毕竟不是做python项目))
视频:任意, 时间不要太长。
(2)获取视频声音 (剪映)
如视频所示:
提取声音
(3)获取视频图片集(python)
1、创建虚拟空间,如图所示:
2、下载安装包,代码如下:(终端)
python -m pip install --upgrade pip
pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install opencv-python -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install pygame -i https://pypi.mirrors.ustc.edu.cn/simple/
3、再下载auto-py-to-exe(打包)
pip install auto-py-to-exe -i https://pypi.mirrors.ustc.edu.cn/simple/
4、写下代码:
from os import system
from cv2 import VideoCapture, imencode
from tkinter import Tk, Frame, Button
from tkinter.filedialog import askopenfilename, askdirectory
def start():
global flag
flag = False
def change():
global flag
flag = not flag
def video_load():
global video_path
file_path = askopenfilename(title="选择一个视频", filetypes=[("MP4文件", "mp4")], initialdir='./')
video_path = file_path
def directory_load():
global directory_path
file_path = askdirectory(title="选择保存的文件夹")
directory_path = file_path
def video_to_images():
# 打开视频文件
global directory_path
global video_path
global flag
try:
video = VideoCapture(video_path)
except FileNotFoundError:
print("无法打开视频文件")
return
# 确保视频文件被成功打开
if not video.isOpened():
print("无法打开视频文件")
return
# 初始化帧计数器
frame_count = 0
while True:
# 读取视频的一帧
ret, frame = video.read()
# 如果未成功读取帧,则退出循环
if not ret:
break
# 保存帧为图像文件
image_path = directory_path + "/frame_" + str(frame_count) + ".jpg"
imencode('.jpg', frame)[1].tofile(image_path) # 保存图片
if flag:
system(image_path)
# 增加帧计数器
frame_count += 1
print("目前转换了", frame_count, "帧图像")
# 释放视频对象
video.release()
print("视频转换完成!共转换了", frame_count, "帧图像")
def window():
win = Tk()
frame = Frame(win)
btnVload = Button(frame, text="导入视频", font=("微软雅黑", 40, "bold"), command=video_load)
btnDload = Button(frame, text="导出视频", font=("微软雅黑", 40, "bold"), command=directory_load)
btnchange = Button(frame, text="开始转换", font=("微软雅黑", 40, "bold"), command=video_to_images)
btnmake_sure = Button(frame, text="转换时检查", font=("微软雅黑", 40, "bold"), command=change)
start()
frame.pack()
btnVload.pack()
btnDload.pack()
btnchange.pack()
btnmake_sure.pack()
return win
if __name__ == '__main__':
win = window()
win.mainloop()
5、打包
在终端输入:
auto-py-to-exe
回车
页面如下:
将页面修改,如下:
点击“Browse”, 选择python文件。
选择“One File”
点击 Convert .PY TO .EXE
如图:
打包完成后,页面如下:
点击 OPEN OUTPUT FOLDER
如图:
打开.exe文件
如图:
点击导入视频, 选择你的视频的位置。
点击导出视频, 选择导出图片的位置。
最后点击开始转换。
如视频所示:
图片集