OCR使用

  1. 生成单个训练集
  2. 合并多个训练集
  3. Python中使用OCR
  4. 其它问题

粗略总结(文字版,下面有图片文件教程版)

1.生成训练的图片(从网上找,或者自己画图),将图片另存为.tiff格式,方便后面搜索,也可以直接保存为.png格式

2.(这步可以跳过)先查看识别的结果,来到图片位置,
   输入命令:tesseract.exe number.png result -l eng 
   参数解释: number.png:要识别的图片   result:识别结果会存放在result.txt里面,所以写的时候不需要加.txt   
            -l eng:使用的语言  

3.合并样本图像,运行jTessBoxEditor工具,在点击菜单栏中Tools--->Merge TIFF,
  将图片另存为:num.font.exp0.tif
  参数解释:  语言.字体.序号.tif
  
4.生成的box文件
    tesseract.exe  num.font.exp0.tif   num.font.exp0   batch.nochop makebox
    
5.文字校正,运行jTessBoxEditor工具,打开num.font.exp0.tif文件,进行文字校正,并保存结果

6.定义字体特征文件,文件名为:font_properties
  内容为: font 0 0 0 0 0
  
7.生成语言文件
     根据需要,参考下面两个内容,将文件保存为.bat格式   
     
8.将生成的语言文件(num.traineddata)放到 Tesseract-OCR\tessdata文件夹下面

9.再次执行,此时将语言改为 num
   tesseract.exe number.png result -l num
   
10.如果要合并之前训练的结果,需要将之前的 .box .tif(num.font.exp0.tif) 和新的文件放在一起 

生成单个训练集

rem 执行改批处理前先要目录下创建font_properties文件 
echo 生成tr文件 
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 
 
echo 生成字符集
unicharset_extractor.exe num.font.exp0.box 

echo  合并训练数据(.tr)
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 

echo 聚合所有的tr文件
cntraining.exe num.font.exp0.tr 

echo 文件重命名
rename normproto num.normproto 
rename inttemp num.inttemp 
rename pffmtable num.pffmtable 
rename shapetable num.shapetable  

echo 生成结果
combine_tessdata.exe num. 

echo 更多详细操作可参考:https://blog.csdn.net/ruyulin/article/details/89046148
echo. & pause

合并多个训练集

rem 执行改批处理前先要目录下创建font_properties文件 
echo  生成tr文件 (要合并多少个文件,就写几行)
echo tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 
echo tesseract.exe num.font.exp1.tif num.font.exp1 nobatch box.train

echo 生成字符集
unicharset_extractor.exe num.font.exp0.box num.font.exp1.box

echo  合并训练数据(.tr)
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr  num.font.exp1.tr 

echo 聚合所有的tr文件
cntraining.exe num.font.exp0.tr num.font.exp1.tr 

echo 重命名
rename normproto num.normproto 
rename inttemp num.inttemp 
rename pffmtable num.pffmtable 
rename shapetable num.shapetable  

echo 生成结果
combine_tessdata.exe num. 

echo 更多详细操作可参考:https://blog.csdn.net/ruyulin/article/details/89046148
echo. & pause


点我,参考教程1
点我,参考教程2
点我,参考教程2

Python中使用OCR

# -*-coding:utf-8-*-
import pytesseract
from PIL import Image
import cv2 as cv
   
# 图片位置
path = r"./picture/test_2_en.png"

# 直接打开
# image = Image.open(path)

# 以灰度图形式打开图片
imgage = cv.imread(path, 0)

# 设置图片的大小,放到两倍
img_size = cv.resize(imgage, None, fx=2, fy=2)

# 显示图片
# cv.imshow("title", img_size)
# cv.waitKey(0)

# 添加配置的方法
# config = ('-l eng -l chi_sim --oem 1 --psm 3')
# code = pytesseract.image_to_string(img_size, config=config)

# lang 使用的语言
code = pytesseract.image_to_string(img_size, lang="chi_sim")
print(code)

其它问题

1.显示当前训练语言列表:  tesseract --list-langs
2.安装库 pip install pytesseract
3.jtessboxeditor 中文乱码
    点击工具中的 Settings-->Font-->宋体  即可解决中文乱码

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:OCR使用

本文作者:伟生

发布时间:2021-04-24, 15:23:18

最后更新:2021-05-06, 15:30:21

原始链接:http://yoursite.com/2021/04/24/share_09_OCR/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏