python识别图片文字_告别腾讯百度图片文字识别API调用,OCR图片文字识别就用这条代码...

上期文章我们分享了tesseract的基本安装,本期我们来分享一下如何使用python与tesseract进行代码的编程来实现tesseract的文字识别

在开始本期文章之前,请认真阅读一下小编前期分享的了tesseract的安装教程,确保你电脑里面安装了pytesseract 与tesseract,最好是4.0以上的版本

49db8b39d36431ac3650d471c36839db.png

pytesseract 与python的完美结合

import pytesseract

import cv2

from pytesseract import Outpu

image = cv2.imread('11.png')

rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

results = pytesseract.image_to_data(rgb, output_type=Output.DICT)

首先我们导入pytesseract第三方库

使用cv2.imread读取需要检测的图片

由于CV2读取的图片是在BGR空间,这里需要cv2.cvtColor(image, cv2.COLOR_BGR2RGB)来转换为RGB空间

然后使用pytesseract.image_to_data来识别,结果保存在results里面

ok ,本期文章到此结束,就这几条代码

d7f44aa7d7e5cb2bba75379b03447dac.png

哈哈,开个玩笑,再怎么也得介绍一下代码的具体含义

pytesseract一般具有如下功能:

  1. image_to_string将图像上的Tesseract OCR运行结果返回到字符串
  2. image_to_boxes返回包含已识别字符及其框边界的结果
  3. image_to_data返回包含框边界,置信度和其他信息的结果
  4. image_to_osd返回包含有关方向和脚本检测的信息的结果

这里我们使用image_to_data来获取检测到的字符以及置信度与具体的边界位置,其他功能小伙伴们可以自行测试

image_to_data(image,lang = None,config ='', nice = 0,output_type = Output.STRING)

image Object,PIL Image /由Tesseract处理的图像的NumPy数组

lang String,Tesseract语言代码字符串

config String,任何其他配置为字符串

nice Integer,修改Tesseract运行的处理器优先级。Windows不支持。

output_type Class属性,指定输出的类型,默认为string

我们这里选择输入一个字典,字典里面存放着测到的字符以及置信度与具体的边界位置

for i in range(0, len(results["text"])):

x = results["left"][i]

y = results["top"][i]

w = results["width"][i]

h = results["height"][i]

text = results["text"][i]

conf = int(results["conf"][i])

我们遍历整个字典,获取了检测字符串的初始位置(x,y),以及字符串的长度与高度(w,h),这样我们就可以画一个box来提示以及检测到的字符串。

text = results["text"][i]获取识别到的字符串

conf = int(results["conf"][i])获取识别到字符串的置信度

if conf > 50:

text = "".join([c if ord(c) < 128 else "" for c in text]).strip()

print(text)

cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow("Image", image)

cv2.waitKey(0)

我们选择置信度大于50%的,把检测到的字符串全部打印,并显示到图片上

fe178a058888a2984368f8dded49372b.png

检测到的字符

tesseract 默认只识别英文,你若想识别其它语言,请下载对应的tessdata

https://github.com/tesseract-ocr/tessdata

image_to_data(image,lang = None,config ='', nice = 0,output_type = Output.STRING)

然后修改此处的lang=“chi_sim”或者其他语言

0b46d6177fcac16f8428342d9671cb1d.png

只检测英文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值