作者:虛壞叔叔
早餐店不會開到晚上,想吃的人早就來了!😄
Python利用OCR提取圖檔中的文字

很多軟體内置了
OCR
功能,即圖檔提取文字功能。有些是免費提供給大家使用,但有些是收費的。不管是免費的還是收費的,終究逃離不了隐私問題。用别人的
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
找不到指定子產品的問題。建議從這裡https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely下載下傳
[winRrror 126]
安裝包完成安裝。
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提取圖檔中的文字。