目录
一、安装tesseract-ocr
1、下载安装
下载地址:Index of /tesseract
下载最新稳定版本:tesseract-ocr-w64-setup-v5.0.0.20190623.exe
2、设置环境变量:
Win+R打开命令行,输入sysdm.cpl打开设置Path的窗口,添加tesseract-ocr的路径
3、测试安装是否成功
把语言文件拷贝到tessdata目录下
tesseract –v 测试安装
tesseract –list-langs测试语言包
二、视频字幕识提取
1、基本步骤:
(1)逐帧截取字幕部分图像范围
(2)cv2.cvtColor图像灰度化
(3)cv2.threshold二值化
(4)安装pytesseract:pip3 install pytesseract
pytesseract将图像上的Tesseract OCR运行结果返回到字符串
2、完整代码:
import pytesseract
import cv2
import numpy as np
from scipy import stats
import os
import matplotlib.pyplot as plt
if __name__ == '__main__':
path = "20210701.mp4"
print(path)
cap = cv2.VideoCapture(path)
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
print(frame_count)
i=0
#print("1")
while i<frame_count:
cap.set(cv2.CAP_PROP_POS_FRAMES, i)
#print("2")
_, frame = cap.read(i)
#print("3")
if i==48:
cv2.imwrite('20210701.jpg',frame)
#print("4")
shape = frame.shape
#print("5")
print(shape)
cv2.imshow("Frame-1", frame[580:630, 10:1270])
#print("6")
img=frame[630:680, 50:1270]
plt.imshow(img)
plt.axis("off")
plt.show()
#cv2.imshow(img)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图
#cv2.imshow("Frame-2:Gray", img) #显示灰度图
_, img= cv2.threshold(img, 220, 255, cv2.THRESH_BINARY) # 图像,阈值,映射的最大值,使用什么算法一般为cv2.thresh_binary
#cv2.imshow("Frame-3:Binary", img) #显示灰度图
tessdata_dir_config = '--tessdata-dir "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\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()
3、部分运行结果: