Toriyung

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Tesseract OCR Q&A_1

2022/03/03

开始OCR项目训练

 

准备工作

*预先准备好opencv

使用的是tesseract,需先下载程序包

https://github.com/UB-Mannheim/tesseract/wiki

在pycharm下载pytesseract库

pip install pytessract

代码

复制代码
import cv2 as cv
import pytesseract as pytess

pytess.pytesseract.tesseract_cmd = 'D:\work\\automation\Skill\Python\pythonWORK\cv\Tesseract\\tesseract.exe'

img = cv.imread('D:\work\\automation\Skill\Python\pythonWORK\cv\material\woshi.jpg')
img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
H,W,C = img.shape  #输出窗口高宽色

## 单个字母识别画框
boxes = pytess.image_to_boxes(img,lang='chi_sim')     #image_to_boxes: 左下角为原点,输出左下角坐标和右上角坐标
for i in boxes.splitlines():    
    i = i.split(' ')
    print(i)
    x,y,w,h = int(i[1]),int(i[2]),int(i[3]),int(i[4])
    cv.rectangle(img,(x,H-h),(w,H-y),(0,255,0),1)  #opencv中左上角为原点,rectangle输入左上角坐标和右下角坐标
cv.imshow('img',img)
cv.waitKey(0)

## 单词识别画框
boxes = pytess.image_to_data(img)   #image_to_data(img): 左上角为原点,输出左上角坐标和宽高
for a,i in enumerate(boxes.splitlines()):  
    if a != 0:
        i = i.split()
        if i[10] != '-1':
            # print(i)
            x, y, w, h = int(i[6]), int(i[7]), int(i[8]), int(i[9])
            cv.rectangle(img,(x,y),(x+w,y+h),(0,255,0),1)  #opencv中左上角为原点,rectangle输入左上角坐标和右下角坐标
cv.imshow('img',img)
cv.waitKey(0)
复制代码

 

运行效果

 

 

遇到的问题

Q1:新建python project发现虚拟环境没有包,下载包时出现失败

A1:numpy版本和pip不适配,更新pip

python -m pip install --upgrade pip

Q2:方框不对应

A2:

opencv中画方框cv.rectangle()输入参数为左上角坐标和右下角坐标,以左上角为坐标原点

tesseract中:image_to_data()同上,输出左上角坐标和宽高,以左上角为坐标原点

      image_to_boxes()输出左下角坐标和右上角坐标,以左下角为坐标原点,

所以在坐标输入时需对应和窗口大小进行运算

Q3:中文以及其他语言识别问题

A3:需在安装tesseract时选择对应语言包额外下载,识别时需加入对应语言选择如:

image_to_data(img,lang='chi_sim')   #加入中文识别

 

posted on   Toriyung  阅读(90)  评论(1编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示