针对“python利用pytesseract 实现本地识别图片文字”的完整攻略,我会提供以下内容:
简介
pytesseract是一个OCR(光学字符识别)库,它可用于将图像中的文本转换为可编辑文本格式,如txt、doc和pdf等。Tesseract是一个开源OCR引擎,它被Google开发并维护。
Python接口可供使用。它可以通过pip命令安装,并且Tesseract库需要先被安装,本地化安装方法请自行查找。
使用方式
在Python程序中,通过绑定pytesseract库及其参数,我们可以非常方便地实现本地图片中文本的识别。
示例代码如下:
import pytesseract
from PIL import Image
img = Image.open('test.png')
text = pytesseract.image_to_string(img)
print(text)
其中,我们需要先通过Pillow库中的Image打开图片文件,再使用pytesseract.image_to_string()方法识别其中的文本内容,最后打印输出。
参数调整
pytesseract提供了一些可选参数,来帮助我们实现更优秀的文字OCR识别效果。
首先,我们可以通过lang参数,设置OCR识别所使用的语言,示例如下:
text = pytesseract.image_to_string(img, lang='chi_sim')
其中,'chi_sim'代表简体中文,如果需要识别其他语言,需要更改参数。
其次,我们可以通过psm参数,设置OCR识别所依赖的页面分割模式,示例如下:
text = pytesseract.image_to_string(img, config='--psm 6')
其中,'--psm 6'代表块式文本(high-level)。
其他常见参数还包括:
- oem参数,设置OCR识别引擎模式,取值一般为1、2、3、4,默认3
- config参数,用来在命令行传递其他Tesseract扩展参数,例如突出文本边缘、二值化等
text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6 --oem 1')
这里举了一个同时设置了lang、config和oem三个参数的示例。
示例说明
下面提供两个示例,分别为在Python中读取本地图片及在线图片的OCR识别示例。
本地图片OCR识别
示例代码如下:
import pytesseract
from PIL import Image
img_path = 'test.png'
with open(img_path, 'rb') as f:
img = Image.open(f)
text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6')
print(text)
其中,我们采用tolerate_ocr_errors=True参数,可以忽略OCR识别时出现的错误警告,从而避免因为某个字符无法被识别而导致代码报错。
在线图片OCR识别
示例代码如下:
import pytesseract
from PIL import Image
import requests
from io import BytesIO
img_url = 'https://i.imgur.com/MfEDeTE.png'
response = requests.get(img_url)
img = Image.open(BytesIO(response.content))
text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6')
print(text)
在这个示例代码中,我们通过requests库下载了一张线上图片,然后转化为Image类型。在接下来的处理中,与本地图片识别示例相同。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python利用pytesseract 实现本地识别图片文字 - Python技术站