(1)Python图像处理之图片文字识别(OCR)
(2)windows下用Python把pdf文件转化为图片

1 OCR与Tesseract

1.1 Tesseract的简介

一、OCR
将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。

二、Tesseract
Tesseract是一个OCR库,目前由Google赞助(Google也是一家以OCR和机器学习技术闻名于世的公司)。Tesseract是目前公认最优秀、最精确的开源OCR系统。

除了极高的精确度,Tesseract也具有很高的灵活性。它可以通过训练识别出任何字体(只要这些字体的风格保持不变就可以),也可以识别出任何Unicode字符。

用Tesseract可以识别格式规范的文字,主要具有以下特点:
(1)使用一个标准字体(不包含手写体、草书,或十分“花哨的”字体)。
(2)虽然被复印或拍照,字体还是很清晰,没有多余的痕迹或污点。
(3)排列整齐,没有歪歪斜斜的字。
(4)没有超出图片范围,也没有残缺不全,或紧紧贴在图片的边缘。

1.2 Tesseract的安装

Tesseract的Windows安装包下载地址
下载后双击直接安装即可。
安装目录C:\Program Files\Tesseract-OCR。

安装完后,需要将Tesseract添加到系统变量中。在CMD中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。

1.3 Tesseract的使用

1.3.1 识别英文图片

tesseract xxx.png results.txt

1.3.2 识别中文图片

识别简体中文,需要事先安装简体中文语言包,下载地址为:
简体中文语言包下载地址,右键下载即可。

再将chi_sim.traineddata放在C:\Program Files (x86)\Tesseract-OCR\tessdata目录下。

tesseract xxx.png results.txt -l chi_sim

1.4 pytesseract的使用

pytesseract是Tesseract关于Python的接口,可以使用pip install pytesseract安装。安装完后,就可以使用Python调用Tesseract了,不过,还需要一个Python的图片处理模块,可以安装pillow。

import pytesseract
from PIL import Image
cmd_path = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
image_path = r'C:\Users\user\Desktop\2.png'
pytesseract.pytesseract.tesseract_cmd = cmd_path
text = pytesseract.image_to_string(Image.open(image_path),lang="chi_sim")
# 去掉字符串中的所有空格和换行符
text = text.replace(" ", "").replace("\n","")
print(text)

2 提取pdf中的文字

2.1 pdf文件转化为图片

安装库 pip install pymupdf。

# -*- coding: utf-8 -*-
import os
import fitzpdf = r"C:\Users\user\Desktop\大型网站技术架构.pdf"
doc = fitz.open(pdf)
pdf_name = os.path.splitext(pdf)[0]
print(pdf_name)
print(doc.pageCount)
i = 0png_dir = r"C:\Users\user\Desktop\mytest"
for pg in range(doc.pageCount):i = i + 1png_name = str(i)+".png"print(i)png_path = os.path.join(png_dir, png_name)page = doc[pg]rotate = int(0)# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。zoom_x = 2.0zoom_y = 2.0trans = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)pm = page.get_pixmap(matrix=trans, alpha=False)pm.save(png_path)

2.2 批量提取图片文字

import pytesseract
from PIL import Image
import os
cmd_path = r'C:\Program Files\Tesseract-OCR\tesseract.exe'def image2txt(png_path):pytesseract.pytesseract.tesseract_cmd = cmd_pathtext = pytesseract.image_to_string(Image.open(png_path),lang="chi_sim")# 去掉字符串中的所有空格和换行符text = text.replace(" ", "").replace("\n","")return textpng_dir = r"C:\Users\user\Desktop\mytest"
num = len(os.listdir(png_dir))
filename = "results.txt"
for i in range(num):i = i+1png_name = str(i) + ".png"png_path = os.path.join(png_dir, png_name)re = image2txt(png_path)with open(filename,"a+",encoding="utf8") as fw:fw.write(str(i)+re+"\n")print(i,re)

3 获取PDF文档目录(纲要)

pip install pdfplumber
pip install pymupdf

#-*- coding: utf-8 -*-
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
# 获得目录(纲要)
# 打开一个pdf文件
fp = open(r"C:\Users\user\Desktop\大型网站技术架构.pdf", 'rb')
parser = PDFParser(fp)
document = PDFDocument(parser)# 获得文档的目录(纲要)
outlines = document.get_outlines()
for (level,title,dest,a,se) in outlines:print(level, title)

python-31-提取pdf中的文字相关推荐

  1. Python提取PDF中的文字和图片

    一,使用Python提取PDF中的文字 # 只能处理包含文本的PDF文件 #coding=utf-8 import sys import importlib importlib.reload(sys) ...

  2. Spring Boot 提取pdf中的文字

    Spring Boot 提取pdf中的文字 提取pdf中的文字,由于字体不同,可能会提取出来乱码.(友情提示:建议先pdf文件转成图片,然后调用百度api提取文字,准确率高.跳转链接:https:// ...

  3. python提取pdf中的文字和图片_Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)...

    PDF文件格式 如今,可移植文档格式(PDF)属于最常用的数据格式.在1990年,PDF文档的结构由Adobe定义.PDF格式的思想是,对于通信过程中涉及的双方(创建者,作者或发送者以及接收者)而言, ...

  4. 三种方法,用Python轻松提取PDF中的全部图片

    作者 | 陈熹.刘早起 来源 | 早起Python 头图 | 下载于视觉中国 有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用 ...

  5. 三种方法,Python轻松提取PDF中全部图片

    有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用Python也可以轻松搞定! 今天就跟大家系统分享几种Python提取 PDF ...

  6. python 处理pdf文件 转成txt 批量提取pdf中的文字

    用到的包 pdfminer3k 代码 import os import refrom pdfminer.pdfinterp import PDFResourceManager,process_pdf ...

  7. 一招教你免费提取PDF中的文字

    转换PDF文档的时候,我们会发现一个问题:有的PDF文档转成Word可编辑,有的PDF文档转出来却还是图片,无法编辑. 针对这类可编辑的PDF文档,小编有个既简单又省钱的方法教给大家. 第一步 首先需 ...

  8. 使用PDFBOX提取PDF中的文字

    PDDocument pdf = PDDocument.load(new File(srcFilePath));PDPageTree pageTree = pdf.getPages();int cou ...

  9. 【办公自动化】使用Python一键提取PDF中的表格到Excel(文末送书5本)

  10. python提取cad中的文字_[python]提取PPT中的文字(包括图片中的文字)

    python是一门很强大的语言,因为有着丰富的第三方库,所以可以说Python是无所不能的. 很多人都知道,Python可以操作Excel,PDF·还有PPT,这篇文章就围绕Python提取PPT中的 ...

最新文章

  1. php 输出带参数整个html页面,如何在PHP页面中原样输出HTML代码(是该找本php的数来看了)...
  2. 天谕手游与奥特曼联手,玩家看到有多么激动?
  3. E - Counting Cliques HDU - 5952
  4. JSch - Java Secure Channel : java 代码实现服务器远程操作
  5. ireport参数传递json_Json传递数据两种方式(json大全)
  6. react api_如何在WordPress REST API之上构建React应用
  7. 389 Find the Difference 找不同
  8. Eclipse快捷键大全(同样适用基于Eclipse开发的IDE)
  9. vue+sortable实现表格拖拽
  10. SSH 登录太慢的解决方法
  11. LabVIEW显示Unicode字符
  12. sap系统ftp服务器下文件,sap ftp服务器
  13. 【OpenBMC 系列】3.bitbake介绍
  14. 解决MySQL CPU占用100%的经验总结 转
  15. 【树状数组】清点人数
  16. php扩展库后门,编写基于PHP扩展库的后门
  17. 人事管理系统哪个好用?人事管理系统推荐!
  18. 【关于微阵列芯片和RNA-seq的比较】
  19. 机器人基础之姿态矩阵
  20. C练题笔记之:Leetcode-827. 最大人工岛

热门文章

  1. android reset方法,Android factory reset 流程
  2. 金山打字测试一分钟软件,金山打字2006——一款打字练习及测试软件.doc
  3. SAP 工单报工批次确定自动带出批次并拆分
  4. mysql front的使用注意要点
  5. java ssm Vue高校奖学金管理系统毕业设计项目介绍
  6. 计算机网络实验二:网络基础编程实验
  7. oracle导出报错00091,exp报错:EXP-00091 Exporting questionable statistics
  8. 2018年中山大学计算机考研初试经验贴
  9. 想找一款读书笔记软件?快来试试BookxNote
  10. 天正建筑8.5 天正给排水8.5天正电气8.5天正暖通8.5及注册机(32位)