基于 PaddleOCR
封装的 RPC
服务,包含客户端和服务端。
客户端提供了一个简单易用的函数 ocr
,通过不同的参数控制返回不同的值。
为什么要分成服务端和客户端?
因为 PaddleOCR
安装太重了,如果你的使用场景是需要经常安装,那绝对是一个痛苦的事情,你要是知道它每次安装要装多少东西你肯定会忍不住摇头;
而在服务端一次性安装部署之后,客户端就可以零成本的使用,非常的方便。
Documentation: https://linuxdeepin.github.io/pdocr-rpc
Source Code: https://github.com/linuxdeepin/pdocr-rpc
pip install pdocr-rpc[server]
随意新建一个py
文件,名称你可以自定义,比如:ocr_server.py
;
写入以下内容:
# ocr_server.py
from pdocr_rpc.server import server
server()
默认端口号为 8890
如果你想修改端口:
from pdocr_rpc.server import server
from pdocr_rpc.conf import setting
setting.PORT = 8888
server()
pip install pdocr-rpc
from pdocr_rpc import OCR
from pdocr_rpc.conf import setting
# 注意IP和端口要和你的服务端IP对应
setting.SERVER_IP = "192.168.0.1"
setting.PORT = 8888
OCR.ocr()
自动识别当前整个屏幕的所有内容。
OCR.ocr(picture_abspath="~/Desktop/test.png")
返回识别图片 test.png
的内容。
OCR.ocr("天天向上")
返回当前屏幕中,“天天向上”的坐标,如果存在多个,则返回一个字典。
OCR.ocr("天天向上",picture_abspath="~/Desktop/test.png")
-
识别语言
lang:
ch
,en
,fr
,german
,korean
,japan
默认为ch,中文,如果要修改识别语言;
OCR.ocr(lang="ch")
-
匹配度
similarity: float
默认为0.6,可以修改为从0到1的数;
OCR.ocr(similarity=0.1)
-
返回原始数据
return_default: bool
默认为False,即默认返回识别到字符串的中心坐标,True表示返回原始数据;
OCR.ocr(return_default=False)
-
只返回第一个
return_first: bool
当传入要查找的字符串时,可能存在当前屏幕中有多个目标;
默认情况下是会将识别到的多个目标组装成字典返回;
return_first=True 表示返回识别到的第一个。
OCR.ocr(return_first=True )