|
本帖最后由 微雨伴恭城 于 2023-7-12 16:48 编辑
前段时间在论坛看到有朋友在问怎么识别图片文字的问题,今天刚好完成了公众号上关于这个内容的分享,也在这里跟大家分享交流。
这里首先就要简单介绍一下OCR(Optical Character Recognition),也就是光学字符识别,是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。像微信截图后可以直接复制文字,这个就是OCR。
这里就两种python调用ocr识别文字的方法跟大家交流分享。
1.用python的pytesseract tesseract-ocr识别图片文字。通过tesseract站点包,进行文字识别,但是识别效率较低,只能识别简单背景的图片,稍微复杂点的图片,错误率很高,甚至有可能无法识别。代码如下:
- <pre style=""># coding:utf-8
- import pytesseract
- from PIL import Image
- import glob
- import os
- def wordProcess(string):
- string = string.replace(" ", "")
- string = string.replace("|", "")
- #string = string.replace(":", "")
- string = string.replace(";", "")
- string = string.replace(".", "")
- string = string.replace("“", "")
- return string.replace("\n", "")
- def readWordInImage(inputPath):
- for each_image in glob.glob(os.path.join(inputPath, '*.jpg')):
- image = Image.open(each_image)
- words = pytesseract.image_to_string(image, lang='chi_sim')
- # print(word)
- wordsResult = wordProcess(words)[10:500]
- print(wordsResult)
- if __name__ == '__main__':
- inputPath = 'F:/newfolder/'
- readWordInImage(inputPath)</pre>
复制代码 2.调用大厂的api进行文字识别,比如百度、腾讯、搜狗等等,本文调用的百度api的通用文字识别。
(1)[color=rgba(0, 0, 0, 0.9)]登录百度智能云(百度账号可登录),进入控制台。
(2)从左上角的产品服务弹出菜单,选择文字识别进入控制台总览。
(3)从控制台中创建应用,选择需要的接口。
(4)在应用中查看AppID、API Key、Secret Key,后续调用接口要用。
(5)代码回复可见
3.有兴趣的朋友可以关注下我的公众号,HolaGIS。
|
|