利用Python提取视频中的字幕(文字识别)

本文介绍了一个使用Python结合百度API提取视频中字幕的项目。通过裁剪视频帧、灰度处理和文字识别,将字幕保存到TXT文档。虽然精确度有待提高,但已能有效提取大部分文字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学了好久机器学习的内容有些许枯燥,今天我们来做一个Python的小项目来玩耍吧!
在这里插入图片描述

项目背景

通过获取百度API实现视频文字识别。

需求阐述

将.MP4格式视频裁剪成一帧一帧的图片再将图片中的字幕摘取出来,保存成一个文档。

进入正题喽!!!

思路

1.将视频按帧截取成图片
2.将上一步截取的图片再进行裁剪,只保留字幕部分,然后在进行灰度处理
3.调用百度api识别文字
4.输出成txt

首先导包
# base64是一种将不可见字符转换为可见字符的编码方式
import base64
# opencv是跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法
import os

import cv2
import requests
from aip import AipOcr
# 百度AI的文字识别库

base64 base64是一种将不可见字符转换为可见字符的编码方式。
opencv 是跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。
AipOcr 百度AI的文字识别库。
注意:
这里from aip import AipOcr刚开始可能会报错,原因可能是aip和baidu-aip根本不是同一个包,如果想要import的时候,都是使用:import aip
之后pip install baidu-aip就没报错了

代码详情
裁剪视频
def tailor_video():
    # 要提取视频的文件名,隐藏后缀
    sourceFileName = 'material'
    # 在这里把后缀接上
    video_path = os.path.join("G:/material/", sourceFileName + '.mp4')
    times = 0
    # 提取视频的频率,每10帧提取一个
    frameFrequency = 10
    # 输出图片到当前目录video文件夹下
    outPutDirName = 'G:/material/video/' + sourceFileName + '/'
    if not os.path.exists(outPutDirName):
        # 如果文件目录不存在则创建目录
        os.makedirs(outPutDirName)
    camera = cv2.VideoCapture(video_path)
    while True:
        times += 1
        res, image = camera.read()
        if not res:
            print('not res , not image')
            break
        if times % frameFrequency == 0:
            cv2.imwrite(outPutDirName + str(times) + '.jpg', image)  #文件目录下将输出的图片名字命名为10.jpg这种形式
            print(outPutDirName 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值