代码拉取完成,页面将自动刷新
使用的为 pymupdf 库 为 fitz子模块
pip install pymupdf -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
开头安装程序所用到的文件
链接:https://pan.baidu.com/s/18d5X9O2BF8dm3gZI8p0J2w
提取码:ob96
感觉还是百度云识别的牛逼
每天 50000次 够用
转载:
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.
需要修改 pytesseract.py ,没有找到 tesseract 程序
我使用的 conda 虚拟环境管理,上面是我的包路径
进入 .py 文件
将路径修改为你电脑 tesseract.exe 绝对路径
再次运行就不会报错了
import os
import time
import fitz
import glob
import pytesseract
import tesserocr
from PIL import Image
from aip import AipOcr
class PdfHandle():
#初始化
def __init__(self):
self.APP_ID = ''
self.API_KEY = ''
self.SECRET_KEY = '9HddR7LxTpEe3zhRTTU41DwbSKEOkQN0'
self.img_path = './pdf/'
self.imgs_list = []
#pdf提取图片
def fun1(self,filename):
name = glob.glob(filename)[0]
doc = fitz.open(name)
for pg in range(0,doc.pageCount):
page = doc[pg]
zoom = int(1000)
rotate = int(0)
trans = fitz.Matrix(zoom / 100.0 ,zoom / 100.0).preRotate(rotate)
pm = page.getPixmap(matrix=trans,alpha=0)
pm.writePNG(self.img_path + '{}.png'.format(str(pg)))
#调用百度api提取文字
def tiqu(self):
self.traverse(self.img_path)
aip_orc = AipOcr(self.APP_ID, self.API_KEY, self.SECRET_KEY)
for file_path in self.imgs_list[0:1]:
file_path = file_path[0]
options = {}
options['detect_direction'] = 'true'
options['probability'] = 'true'
id_card_side = 'front'
result = aip_orc.basicAccurate(self.get_file_content(file_path), options)
# print(result)
for temp in result['words_result']:
print(temp['words'])
#调用百度api提取文字
def tiqu2(self):
self.traverse(self.img_path)
aip_orc = AipOcr(self.APP_ID, self.API_KEY, self.SECRET_KEY)
for file_path in self.imgs_list:
file_path = file_path[0]
print(file_path)
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
while 1:
try:
result = aip_orc.basicGeneral(self.get_file_content(file_path), options)
break
except Exception as e:
time.sleep(2)
continue
# print(result)
for temp in result['words_result']:
print(temp['words'])
print('=========')
#读取图片二进制内容
def get_file_content(self,file_path):
with open(file_path, 'rb') as f:
return f.read()
#遍历目录下的文件图片
def traverse(self,d):
dirs = os.listdir(d) # 获取当前目录的文件列表
for item in dirs:
absPath = os.path.join(d, item) # 拼接绝对路径
if os.path.isdir(absPath): # 判断是否是目录
self.traverse(absPath) # 递归调用函数
else:
if os.path.basename(absPath).endswith('.png'):
self.imgs_list.append((absPath,os.path.basename(absPath)))
#使用 tesseract 识别文字
def my_tesseract(self):
img = Image.open(r'D:\bfy\my_code\task_3\pdf\6.png')
print(pytesseract.image_to_string(img,lang='chi_sim'))
if __name__ == '__main__':
pdf = PdfHandle()
# pdf.my_tesseract()
pdf.tiqu2()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。