【Python】【OpenCV】OCR识别(三)——字符识别

发布时间 2024-01-12 20:03:50作者: VanGoghpeng

  通过上一篇博客,我们成功将有角度的图片进行“摆正”,接下来我们来提取图片中的文字。

  我们使用Tesseract来处理图片并提取文字,相关下载安装请参考:Python下Tesseract Ocr引擎及安装介绍 - 黯然销魂掌2015 - 博客园 (cnblogs.com)

  同时我们需要下载第三方Lib——pytesseract,使用pip下载好后,我们进入Lib\site-packages\pytesseract然后打开pytesseract.py,修改“tesseract_cmd”变量,更改为安装好的Tesseract目录文件夹下的tesseract.exe。

  以下是我的路径:

    tesseract安装路径——D:\soft\tesseract-OCR

    pytesseract路径——D:\soft\Python\virtualenvs\Cameo\venv\Lib\site-packages\pytesseract

    修改“tesseract_cmd”变量,赋值为 = r'D:\soft\tesseract-OCR\tesseract.exe'

  然后我们就可以在程序中开始调用pytesseract库了,上代码:

import pytesseract
from PIL import Image

res = pytesseract.image_to_string(Image.fromarray(img))
print(res)

 

  先导入pytesseract和PIL库,然后使用image_to_string()方法来提取图片中的文字,其中我们使用了Image.fromarray这个方法,因为我们在使用OpenCV处理图像的时候,是以数组的形式,但是image_to_string需要的是图像,所以我们需要把数组转换成图像再传入。

 

运行输出:

a

wee TAX 000 BAL 101.33

WHOLE
FOODS
Cm AR KE TY

WHOLE FOODS MARKET - WESTPORT. CT 06880
399 POST RD WEST - (203) 227-6858

365 BACONLS NP 4.99
365 BACONLS NP 4.99
365 BACON LS NP 4.99
365 BACONLS NP 4.99
BROTH CHIC NP = 2.19

FLOUR ALMOND NP..11.99

CHKN BRST BNLSS SK NP 18.80
HEAVY CREAM NP = 3.39
BALSMC REDUCT NP 6.49

BEEF GRND 85/15 NP 5.04
JUICE COF CASHEW C NP 8.99
DOCS PINT ORGANIC NP 14,49
HNY ALMOND BUTTER NP 9.99

“TABATA AAA Tra
View Code

可以看到运行结果还是较为准确的,如果需要识别中文,则需要相关的中文语料,这里就不过多赘述了。