基于Pytesseract的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即可
在这里插入图片描述
修改后,完成
在这里插入图片描述

写在最后

欢迎点赞关注,博主将不定期更新编程心得干货

猜你喜欢

转载自blog.csdn.net/JasonZ227/article/details/113700724