目录
安装包的准备
注意,tesseract的级别越高,识别的准确性越高
!pip install tesseract
把中文字体包放到对应目录文件夹下
在mac环境中,除!pip install方法,或在pycharm中直接下载package的方法外,最好使用在终端brew install的方法,直接将包安装到大环境中。这样不论是pycharm或者anaconda,都可以使用。
在本案例中,下载好tesseract后,搜索找到对应文件夹,把中文字体包chi_sim拖入
代码片段的实现
import pytesseract
import cv2
import numpy as np
from scipy import stats
import os
import matplotlib.pyplot as plt
os.chdir(r'/Users/mac/Desktop/courses/ad/python/20211112')
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
while i<frame_count:
cap.set(cv2.CAP_PROP_POS_FRAMES, i)
_, frame = cap.read(i)
if i==48:
cv2.imwrite('20210701.jpg',frame)
shape = frame.shape
print(shape)
#cv2.imshow("Frame-1", frame[580:630, 10:1270])
# plt.imshow(frame)
# plt.axis("off")
# plt.show()
img=frame[630:680, 50:1270]
plt.imshow(img)
plt.axis("off")
plt.show()
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 "/Users/mac/opt/anaconda3/lib/python3.8/site-packages/tesseract" --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()
字幕提取成功