IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> python从视频中提取字幕生成长截图 -> 正文阅读

[游戏开发]python从视频中提取字幕生成长截图

在这里插入图片描述

#!/usr/bin/env python
# coding: utf-8

# In[22]:


# 导入库
import cv2
from PIL import Image


# In[23]:


# 视频路径
video_path = "C:/Users/koala/Videos/movie.mp4"
video_capture = cv2.VideoCapture(video_path)
ret,frame = video_capture.read()
# 字幕矩阵大小  原视频高度 宽带  及 字幕的高度
subtitle_shape = [frame.shape[0],frame.shape[1],120]
# 时间点
times = [0.5,5,9,10,11,14,17,19,24,26,29,35,37,40,45,49,52,58,60,62,67,71,77,85,90,94,97,99,104,109,115,121,124,127,136,139,141,144]
# 帧数
FPS = video_capture.get(5)
# 截取的图片数组
clip_images = []
# 保持图片的位置
base_path = "D:/subtitle.jpg"


# In[24]:


# 截取视频指定时间感兴趣的区域
def get_key_area(video,times,subtitle_shape):
    # 当前关键帧
    key_frame = 0
    # 当前帧
    current_frame = 0

    while True:
        ret,frame = video.read()
        if ret:
            current_frame += 1
            if key_frame < len(times) and current_frame == times[key_frame]*FPS:
                # 匹配完成 关键帧+1
                key_frame += 1
                clip = frame[subtitle_shape[0]-subtitle_shape[2]:subtitle_shape[0],0:subtitle_shape[1]]
                clip_images.append(clip)
#               cv2.imwrite("D:/" + str(key_frame) + ".jpg",clip)  
        else:
            break
    print("匹配完成 共计图片 数目为:%d "%len(clip_images))
    video.release()


# In[25]:


def main():
    get_key_area(video_capture,times,subtitle_shape)
    # 生成幕布  长高
    subtitle_image = Image.new("RGB",(subtitle_shape[1],subtitle_shape[2]*len(clip_images)))
    for index,item in enumerate(clip_images):
        # 将图片矩阵转化为PIL 的图片对象
        img = Image.fromarray(item)
        # 左上  右下
        subtitle_image.paste(img,box=(0,index*subtitle_shape[2],subtitle_shape[1],subtitle_shape[2]*(index+1)))
    subtitle_image.save(base_path)
    subtitle_image.show()


# In[26]:


if __name__ == '__main__':
    main()
    # print(__name__)


# In[ ]:





  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:48:06  更:2021-10-12 23:48:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:42:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码