有一说一本来目标是使用python把pdf文件(扫描一整本书那种)给转成txt,但是有几个库死活下不下来,无奈楼主只能先把pdf批量转为png,再使用百度API识图功能识别图片中文字,最后发现识别出文字还有些其他的内容,又进行了下数据筛选导出为txt
具体代码如下
import cv2
from aip import AipOcr
""" 你的 APPID AK SK 图2的内容"""
APP_ID = '1d7'
API_KEY = 'Fvds'
SECRET_KEY = 'LdVuc'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
fname = '1 (7).png'
""" 读取图片 """
def get_file_content(filePath):
with open('1 (7).png', 'rb') as fp:
return fp.read()
image = get_file_content(fname)
""" 调用通用文字识别, 图片参数为本地图片 """
results = client.general(image) # 还可以使用身份证驾驶证模板,直接得到字典对应所需字段
img = cv2.imread(fname)
print(results)
i = 0
for i in range(0,36):
words = results['words_result'][i]['words']
f = open("识图文字.txt", "a")
f.write(words)
f.close()
i= i+1
print('成功页数:',i)
print('over')
本身到img = cv2.imread(fname)这一步已经应该提取出来了,但是楼主提取出来的文本是这样的:
是的不知道为什么会有location这些内容,所以接下来又使用索引清洗了一下数据把word的内容摘取出来导入txt。