当我们需要进行文字识别时,tesserocr和pytesseract是两个常用的Python模块。它们本质上都是封装了Google Tesseract OCR引擎的Python API,因此都能够实现图片文字的识别。接下来,我们将详细讲解这两个模块的使用方法及其区别。
Tesserocr模块
安装
在开始使用Tesserocr前,需要先安装Tesseract OCR引擎。在Ubuntu系统上,可以通过以下命令进行安装:
sudo apt-get install libleptonica-dev libtesseract-dev tesseract-ocr-dev
在Windows系统上,可以从Tesseract官网下载对应版本的安装文件进行安装。安装完成后,需要使用以下命令安装tesserocr模块:
pip install tesserocr
使用
基本使用
以下是一个基本的使用示例:
import tesserocr
from PIL import Image
# 打开图片
image = Image.open('test.png')
# 图片转换为灰度模式
image = image.convert('L')
# 获取文本
text = tesserocr.image_to_text(image)
print(text)
以上示例中,我们使用Image.open()方法打开一张图片,然后将其转换为灰度模式。接着,使用tesserocr.image_to_text()方法提取出图片中的文本。
调整参数
以下是一个调整了一些参数的示例:
import tesserocr
from PIL import Image
# 打开图片
image = Image.open('test.jpg')
# 图片转换为灰度模式
image = image.convert('L')
# 调整参数
api = tesserocr.PyTessBaseAPI()
api.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
api.SetImage(image)
# 获取文本
text = api.GetUTF8Text()
print(text)
以上示例中,我们使用了api.SetVariable()方法,设定tesseract识别字符的白名单,只允许tesseract识别出0-9、大小写字母等字符,这可以帮助我们提高识别率。然后,我们使用tesserocr.PyTessBaseAPI()创建api对象,并将图片设置为输入。最后,使用api.GetUTF8Text()方法提取出图片中的文本。
Pytesseract模块
安装
在开始使用pytesseract前,需要先安装Tesseract OCR引擎。在Ubuntu系统上,可以通过以下命令进行安装:
sudo apt-get install libleptonica-dev libtesseract-dev tesseract-ocr-dev
在Windows系统上,可以从Tesseract官网下载对应版本的安装文件进行安装。安装完成后,需要使用以下命令安装pytesseract模块:
pip install pytesseract
使用
基本使用
以下是一个基本的使用示例:
import pytesseract
from PIL import Image
# 打开图片
image = Image.open('test.png')
# 图片转换为灰度模式
image = image.convert('L')
# 获取文本
text = pytesseract.image_to_string(image)
print(text)
以上示例中,我们使用Image.open()方法打开一张图片,然后将其转换为灰度模式。接着,使用pytesseract.image_to_string()方法提取出图片中的文本。
调整参数
以下是一个调整了一些参数的示例:
import pytesseract
from PIL import Image
# 打开图片
image = Image.open('test.jpg')
# 图片转换为灰度模式
image = image.convert('L')
# 调整参数
text = pytesseract.image_to_string(image, lang='eng', config='--psm 11 --oem 3 -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')
print(text)
以上示例中,我们使用了lang参数指定语言(默认是eng),config参数来设置参数,其中--psm表示Page segmentation mode,--oem表示OCR Engine Mode,tessedit_char_whitelist表示字符白名单。最后,使用pytesseract.image_to_string()方法提取出图片中的文本。
总结
tesserocr和pytesseract都是Python的OCR库,用于图片文字识别,本质上都是封装了Google Tesseract OCR引擎的Python API。它们的使用方法类似,但是在参数的设定上有所不同。总的来说,如果需要更加灵活的控制,建议使用tesserocr,如果对参数控制需求不高,则可以使用pytesseract。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tesserocr与pytesseract模块的使用方法解析 - Python技术站