识别视频字幕文本的思路是:先对视频进行切帧(这里可以使用之前用到的视频分镜方法,更准确地得到字幕不同的帧),再针对图像定位字幕文本的位置。然后利用灰度化、中值滤波、边缘化检测等基于OpenCV的图像处理方法对文字部分进行处理。之后用第三方库pytesseract的算法将文字提取出来。
这里需要用到的第三方库是tesseract。首先下载安装包,下载地址:
https://digi.bib.uni-mannheim.de/tesseract/
下载好后需要配置变量环境,在环境变量中加入该包:
然后输入命令pip3 install pytesseract,将该包安装到python中。
import pytesseract
import cv2
import numpy as np
from scipy import stats
import os
import matplotlib.pyplot as plt
print(os.getcwd())
if __name__ == '__main__':
path = "./video/cut2.mp4" #原视频字幕有英文会影响识别正确率
print(path)
cap = cv2.VideoCapture(path)
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) #把帧数转化为整数
print(frame_count)
i=0
while i
提取结果: