百度云OCR
百度云提供了一定额度的免费的OCR API,目前是每日500次,做做研究或者小应用还勉强够用,本文主要为了测试其效果。
文档地址:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html
安装使用
首先你需要注册一个百度云BCE账号,然后从控制面板新建一个文字识别应用。
之后你就可以获得调用API需要的 AppID,API Key 和 Secret Key。后面只要根据官方文档一步一步走就可以了。
pip install baidu-aip
封装和调用
参考文档: https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E7.AE.80.E4.BB.8B
from aip import AipOcr
config = {
'appId': 'your-id',
'apiKey': 'your-key',
'secretKey': 'your-secret-key'
}
client = AipOcr(**config)
def get_file_content(file):
with open(file, 'rb') as fp:
return fp.read()
def img_to_str(image_path):
image = get_file_content(image_path)
# 通用文字识别(可以根据需求进行更改)
result = client.basicGeneral(image)
return result
测试效果
图片如下:
结果:
{'log_id': 7487097158899870218, 'words_result_num': 4, 'words_result': [{'words': '2选择排序( Selection sort)'}, {'words': '表现最稳定的排序算法之这个稳定不是指算法层面上的稳定哈,相信聪明的你能明白我说的意思2333),因为无'}, {'words': '论什么数据进去都是(n^2)的时间复杂度…所以用到它的时候,数据规模越小越好。唯的好处可能就是不占用额'}, {'words': '外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。'}]}
除了本文提到的OCR,其实还是有不少其他选择。有一些直接提供Demo页面,你直接上传一张图片就可以直接看到识别效果,比如: