文章目录

  • 法一: 使用easyocr模块
  • 法二:通过pytesseract调用tesseract
  • 法三:调用百度API
    • 方式一: 通过urllib直接调用,替换自己的api_key和secret_key即可
    • 方式二:通过HTTP-SDK模块进行调用

法一: 使用easyocr模块

easyocr是基于torch的深度学习模块
easyocr安装后调用过程中出现opencv版本不兼容问题,所以放弃此方案。

法二:通过pytesseract调用tesseract

优点:部署快,轻量级,离线可用,免费
缺点:自带的中文库识别率较低,需要自己建数据进行训练

法三:调用百度API

优点:使用方便,功能强大
缺点:大量使用需要收费
我自己采用的是调用百度API的方式,下面是我的步骤:
注册百度账号,创建OCR应用可以参考其他教程。
购买后使用python调用方法

方式一: 通过urllib直接调用,替换自己的api_key和secret_key即可

# coding=utf-8import sys
import json
import base64# 保证兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:from urllib.request import urlopenfrom urllib.request import Requestfrom urllib.error import URLErrorfrom urllib.parse import urlencodefrom urllib.parse import quote_plus
else:import urllib2from urllib import quote_plusfrom urllib2 import urlopenfrom urllib2 import Requestfrom urllib2 import URLErrorfrom urllib import urlencode# 防止https证书校验不正确
import ssl
ssl._create_default_https_context = ssl._create_unverified_contextAPI_KEY = 'YsZKG1wha34PlDOPYaIrIIKO'SECRET_KEY = 'HPRZtdOHrdnnETVsZM2Nx7vbDkMfxrkD'OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic""""  TOKEN start """
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'"""获取token
"""
def fetch_token():params = {'grant_type': 'client_credentials','client_id': API_KEY,'client_secret': SECRET_KEY}post_data = urlencode(params)if (IS_PY3):post_data = post_data.encode('utf-8')req = Request(TOKEN_URL, post_data)try:f = urlopen(req, timeout=5)result_str = f.read()except URLError as err:print(err)if (IS_PY3):result_str = result_str.decode()result = json.loads(result_str)if ('access_token' in result.keys() and 'scope' in result.keys()):if not 'brain_all_scope' in result['scope'].split(' '):print ('please ensure has check the  ability')exit()return result['access_token']else:print ('please overwrite the correct API_KEY and SECRET_KEY')exit()"""读取文件
"""
def read_file(image_path):f = Nonetry:f = open(image_path, 'rb')return f.read()except:print('read image file fail')return Nonefinally:if f:f.close()"""调用远程服务
"""
def request(url, data):req = Request(url, data.encode('utf-8'))has_error = Falsetry:f = urlopen(req)result_str = f.read()if (IS_PY3):result_str = result_str.decode()return result_strexcept  URLError as err:print(err)if __name__ == '__main__':# 获取access tokentoken = fetch_token()# 拼接通用文字识别高精度urlimage_url = OCR_URL + "?access_token=" + tokentext = ""# 读取测试图片file_content = read_file('test.jpg')# 调用文字识别服务result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))# 解析返回结果result_json = json.loads(result)print(result_json)for words_result in result_json["words_result"]:text = text + words_result["words"]# 打印文字print(text)

方式二:通过HTTP-SDK模块进行调用

from aip import AipOcr
APP_ID = '25**9878'
API_KEY = 'VGT8y***EBf2O8xNRxyHrPNr'
SECRET_KEY = 'ckDyzG*****N3t0MTgvyYaKUnSl6fSw'client = AipOcr(APP_ID,API_KEY,SECRET_KEY)def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()image = get_file_content('test.jpg')
res = client.basicGeneral(image)
print(res)
#res = client.basicAccurate(image)
#print(res)

直接识别屏幕指定区域上的文字

from aip import AipOcr
APP_ID = '25**9878'
API_KEY = 'VGT8y***EBf2O8xNRxyHrPNr'
SECRET_KEY = 'ckDyzG*****N3t0MTgvyYaKUnSl6fSw'client = AipOcr(APP_ID,API_KEY,SECRET_KEY)from io import BytesIO
from PIL import ImageGrab
out_buffer = BytesIO()
img = ImageGrab.grab((100,200,300,400))
img.save(out_buffer,format='PNG')
res = client.basicGeneral(out_buffer.getvalue())
print(res)

python之OCR文字识别相关推荐

  1. 如何使用Python实现图像文字识别OCR

    要使用Python实现图像文字识别OCR,可以使用以下步骤: 安装Tesseract OCR引擎 Tesseract是一种开源OCR引擎,可以处理多种语言和字体.要使用Python进行OCR,需要安装 ...

  2. python常用的OCR文字识别与图片定位方式

    python常用的OCR文字识别与图片定位方式 前言 统一版本 更换pip源 1. Python调用百度文字识别ocr的实现方式 1.1 使用PyCharm安装依赖 baidu-aip chardet ...

  3. python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统

    操作步骤: 1:登陆打开CET-考试系统 2:填写相关登陆信息 3:调用百度ocr实现文字验证码识别 4:实现登陆 如何使用和调用百度ocr文字识别接口 1:进入百度AI开发平台:链接 2:在页面上选 ...

  4. Python制作简易OCR文字识别系统

    前不久看了一篇"如何使用Python检测和识别车牌?"用OpenCV对输入图像进行预处理,用imutils将原始输入图像裁剪成所需的大小,用pytesseract将提取车牌字符转换 ...

  5. python查找文字在图片中的位置_图片中的文字竟然能如此快速提取?OCR文字识别功能简直太强大了...

    想一想你之前如何将线下收集的材料信息采录到线上系统的? 比如作为财务人员,员工凭发票报销费用,但是收集到发票录入信息是需要将发票种类名称.发票代码.纳税人识别号等各种信息录入到系统.你是不是还在一个字 ...

  6. python图片转文字easyocr_Easy Screen OCR——文字识别转换软件

    Easy Screen OCR for Mac(文字识别转换工具)v1.4.0免费版带给大家!Easy Screen OCR文字识别转换工具可以帮助用户快速的获得图片中的文字内容.使用非常简单,只需拖 ...

  7. Windows下使用Tesseract进行OCR文字识别

    Windows下使用Tesseract进行OCR文字识别 Tesseract最初由惠普实验室支持,用于电子版文字识别,1996年被移植到Windows上,1998年进行了C++化,在2005年Tess ...

  8. OCR文字识别软件的快速任务功能如何用

    2019独角兽企业重金招聘Python工程师标准>>> 在使用ABBYY FineReader Pro for Mac OCR文字识别软件处理文档时,经常会执行一系列相同的步骤,如扫 ...

  9. 对OCR文字识别软件进行自动分析和识别设置的教程

    2019独角兽企业重金招聘Python工程师标准>>> ABBYY FineReader 12这款OCR文字识别软件具有着强大的自主功能,在默认情况下,会自动分析并识别 FineRe ...

  10. 2021-02-21 Python Easyocr 图片文字识别

    Python Easyocr 图片文字识别 前段时间做了车牌识别相关的内容分享,参看: 车牌识别(1)-车牌数据集生成 车牌识别(2)-搭建车牌识别模型 今天给大家分享一个简单的OCR文本识别工具:e ...

最新文章

  1. phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
  2. 干货!我的计算机网络怎么考了 100 分的?
  3. python算不算编程_Python 并不适合职场编程
  4. java随机输出10计算题
  5. 作者:​徐优俊(1990-),男,北京大学前沿交叉学科研究院博士生。
  6. C++/C--unordered_map常见用法详解
  7. Python:序列化
  8. ExtJs4.2——布局
  9. 计算机失误,计算机做题的易出现的失误
  10. 王立平--android事件监听的3种方式
  11. redis集群原理及搭建
  12. yylabel支持html ios,iOS_YYLabel实现多标签,文字+背景功能
  13. Zephyr events
  14. Neuron segmentation using 3D wavelet integratedencoder–decoder network
  15. 部分STL_hanhan~
  16. iphone修改app名称_iPhone6 plus怎么修改图标名字?苹果6 plus设置修改图标名字教程...
  17. Xilinx 7系列 FPGA CLB资源介绍
  18. 【复习巩固】OSI七层模型
  19. JS:页面载入完成时自动提交
  20. 怎样填写备注是什么意思_手机号备注234824是什么意思什么梗 数字梗意思大全...

热门文章

  1. Kettle5.4调用Redis
  2. python 报错: unindent does not match any outer indentation level
  3. 群晖 VMM虚拟机安装openwrt软路由做单臂旁路由
  4. linux nas共享存储6,NAS(网络附属存储)技术
  5. linux修改shell前缀,Linux shell控制台改变显示前缀
  6. python数据类型转换、将数值转换为以万为单位的数_如何把Excel表格中金额为元的数转换成以万元为单位...
  7. 图像处理之双线性插值法
  8. 使用Breed为极路由4增强版(B70-HC5962)刷老毛Padavan固件,配置Nginx代理SSH内网映射
  9. python游戏计分代码_Python笔试题之设计“跳一跳”小游戏计分器
  10. CUDA矩阵转置(共享内存 tile)