天天看点

Python利用OCR提取图片中的文字

作者:虚坏叔叔

早餐店不会开到晚上,想吃的人早就来了!😄

Python利用OCR提取图片中的文字

Python利用OCR提取图片中的文字

很多软件内置了​

​OCR​

​​功能,即图片提取文字功能。有些是免费提供给大家使用,但有些是收费的。不管是免费的还是收费的,终究逃离不了隐私问题。用别人的​

​OCR​

​​,总得把图片传到对方的服务器。今天我们使用​

​Python​

​​开发一个​

​OCR​

​软件,如下图所示。

Python利用OCR提取图片中的文字

一、 安装环境

本文基于​

​PaddleOCR​

​​搭建本地开发图片提取文字软件,因此需要安装​

​PaddlePaddle​

​环境。

1.1 安装PaddlePaddle

如果您的机器有安装​

​CUDA9​

​​或​

​CUDA10​

​​,推荐安装​

​GPU​

​​版本的​

​PaddlePaddle​

​,享受更快的运行速度。运行以下命令安装:

python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple      

如果您的机器只有​

​CPU​

​环境,运行速度会稍微慢一点。请运行以下命令安装

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple      

1.2 安装PaddleOCR whl包

有了​

​PaddlePaddle​

​环境后,接下来安装PaddleOCR库,推荐使用2.0.1+版本:

pip install "paddleocr>=2.0.1"      

注意:

对于​

​Windows​

​​环境用户:直接通过​

​pip​

​​安装的​

​shapely​

​​库可能出现​

​[winRrror 126]​

​​找不到指定模块的问题。建议从这里https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely下载​

​shapely​

​安装包完成安装。

二、调用OCR

调用​

​OCR​

​​过程非常简单,导入​

​PaddleOCR​

​​后,直接创建​

​PaddleOCR​

​对象:

from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
ocr.ocr(img_path, cls=True)      

第​

​2​

​​行代码中,​

​use_angle_cls​

​​参数用于确定是否使用角度分类模型,即是否识别垂直方向的文字。​

​lang​

​​参数表示识别的语言,我们传入​

​ch​

​,表示识别汉字。

第​

​3​

​​行代码中, ​

​img_path​

​​表示图片路径,​

​cls​

​表示是否使用角度分类模型。

三、开发界面

有了以上代码就可以完成​

​OCR​

​​功能,但使用起来还不够方便,我们进一步将​

​OCR​

​​功能封装成软件,便于交互。首先安装​

​PyQT5​

​:

pip install PyQt5      
class OCRGUI(QWidget):

    # 其他代码略...

    def run_ocr(self, img_path):
        result = self.ocr.ocr(img_path, cls=True)
        self.text.clear() 
        txts = [line[1][0] for line in result]
        for txt in txts:
            self.text.insertPlainText(txt + "\n")
        self.loading.hide()      

四、总结

  • 本文完成OCR提取图片中的文字。