栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

利用Python进行粗糙的视频字幕识别

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用Python进行粗糙的视频字幕识别

一.安装包准备

1.安装tesseract-ocr

2.添加语言文件

tesseract-ocr

安装教程参见:Tesseract OCR V5.0安装教程(Windows) - 简书

3.pytessetact识别库

通过cmd输入pip install pytesseract进行安装。

pytesseract包依赖于Tesseract执行文件,需要安装Tesseract,当然Tesseract只能识别标准的ASCII字符串,复杂的验证吗就无法使用pytesseract来读取了。

二.字幕识别步骤

1.导入需要的库

import pytesseract
import cv2
import numpy as np
from scipy import stats
import os
import matplotlib.pyplot as plt

2.切割视频帧

if __name__ == '__main__':
    path="zbslb.mp4"
    cap=cv2.VideoCapture(path)
    frame_count=int(cap.get(cv2.CAP_PROP_frame_COUNT))
    print(frame_count)

3.定义开始识别的位置

(接上)
    i=100
    while i 

4.定位并截取字幕位置

(接上)
        shape = frame.shape
        img=frame[ 680:760,0:540]
        plt.imshow(img)
        plt.axis("off")
        plt.show()

[680:760,0:540]是视频字幕的纵横比,如何精准的找这个位置?我是截取一张视频截图,利用画图软件的像素点瞄的,效果还不错。

5.对截取的字幕部分图像进行灰度化处理、中值滤波去噪等

(接上)
        img=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
        _,img=cv2.threshold(img, 220, 255, cv2.THRESH_BINARY)
        tessdata_dir_config = '--tessdata-dir "C:\Program Files\Tesseract-OCR\tessdata"  --psm 7 -c preserve_interword_spaces=1'
        word = pytesseract.image_to_string(img,
                                           lang='chi_sim',
                                           config=' --psm 7 -c preserve_interword_spaces=1')
                                           #config=tessdata_dir_config)
        print(word)
        i=i+24*2

        if cv2.waitKey(10) & 0xff == ord("q"):
            break
                
    cap.release()
    cv2.destroyAllWindows()

6.效果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号