OCR文字识别
- 关于OCR
- 介绍
- 前提准备
- 环境配置
- 文件创建
- 代码实现
- 导库
- 定义一个文字识别类
- 选取所需识别的文字信息
- 执行
- 结果
- 乱码情况处理
关于OCR
介绍
“OCR 是英文Optical Character Recognition的缩写。
意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种方法。它通过 扫描 和摄像等光学输入方式获取纸张上的文字图像信息,利用各种 模式 识别算法分析文字形态特征 可以将票据、报刊、书籍、文稿及其它印刷品转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。可应用于银行票据、大量文字资料、档案卷宗、文案的录入和处理领域。适合于银行、税务等行业大量票据表格的自动扫描识别及长期存储。
前提准备
环境配置
环境 | 版本 |
Python | 3.7 |
Pytesseract | 0.3.7 |
PIL | 1.1.6 |
下载好Pytesseract与PIL
文件创建
在环境下新建一个目录,在目录中创建py文件,以及放入需文字识别的图片。
代码实现
导库
第一步导入所需的库
import pytesseract
from PIL import Image
import os
import warnings; warnings.filterwarnings('ignore')
定义一个文字识别类
在类中分别定义常用语言中文与英文的方法
class Get_Char:
def get_En(self):
p1 = Image.open(f'../AI_learning/{self}') # 相对路径
str1 = pytesseract.image_to_string(p1)
# print(str1)
os.system(f'echo {str1}')
def get_Ch(self):
p2 = Image.open(f'../AI_learning/{self}')
str2 = pytesseract.image_to_string(p2, lang='chi_sim')
# print(str2)
os.system(f'echo {str2}')
选取所需识别的文字信息
以下图为例,
英文图片:
中文图片:
执行
if __name__ == '__main__':
Get_Char.get_En('en1.png')
Get_Char.get_Ch('ch1.png')
结果
乱码情况处理
假如中文出现乱码,则需在settings中设置编码形式
在file encodings中的project encoding设置为GBK即可
修改后,完成