OCR使用
粗略总结(文字版,下面有图片文件教程版)
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
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" 转载请保留原文链接及作者。