提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、系统环境
二、vcpkg安装配置
1.下载
2.编译vcpkg
三、Tesseract编辑安装
1.标准编译安装 :
2.github文件下载失败解决方法
四、qt配置
1 Pro文件配置
2 配置tesseract环境变量
3 配置tesseract环境变量的语言库环境变量
3 qt文件引用include
五、demo实例
总结
学习参考
其他:
感谢个位猿们的知识分享。
记录QT学习的知识点,年纪大了是真的记不住了。
没觉得这个配置有多难,但也反反复复的弄了3天时间,学了个皮毛。
提示:以下是本篇文章正文内容,下面案例可供参考
操作系统:windows10 home
开发工具:QT 5.14.1(MSVC2017)
构建工具:MSVC2017
工具链:github,vcpkg,tessract,opencv4.0
安装vcpkg之前我们需要先安装Git ,
以管理员身份进入Windows PowerShell,
运行: git clone https://github.com/microsoft/vcpkg
不推荐进入cmd命令,说是在后面编译的时候慢.
执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令
进入vcpkg的目录执行下载安装编译
.\vcpkg install tesseract:x64-windows
使用 先下载后编译的方法进行,推荐使用此方法,国内的git不说了坑的要死
./vcpkg install tesseract:x64-windows --only-downloads
./vcpkg install tesseract:x64-windows
github文件下载失败,可以将下载的文件使用其他下载工具进行下载,循环反复下载完全部文件。
注意下载文件的文件名与vcpkg中的保持一致,
推荐使用云盘下载下下载,然后在下载到本地。
在qt中使用tesseract 需要配置2个第三方库引用文件 leptonica 和 tesseract
win32: LIBS += -L$$PWD/../../QTTool/package/leptonica_x64-windows/lib/ -lleptonica-1.81.1
INCLUDEPATH += $$PWD/../../QTTool/package/leptonica_x64-windows/include
DEPENDPATH += $$PWD/../../QTTool/package/leptonica_x64-windows/include
win32: LIBS += -L$$PWD/../../QTTool/package/tesseract_x64-windows/lib/ -ltesseract41
INCLUDEPATH += $$PWD/../../QTTool/package/tesseract_x64-windows/include
DEPENDPATH += $$PWD/../../QTTool/package/tesseract_x64-windows/include
未解决问题:vcpkg中有debug目录,我debug目录中的*d.lib文件配置后不能进行调试。有人知道原因么?
注意,注意,注意这个地方一开始没注意反复处理的好久,否则程序运行不起来会报错。希望有知道原理的大猿讲解下。
1.将vcpkg的xxx\vcpkg\packages\tesseract_x64-windows\tools\tesseract设置为系统环境变量,2次测试无效,不知道具体原因,debug模式运行不起来
2.将xxx\vcpkg\packages\tesseract_x64-windows\tools\tesseract路径下的文件全部拷贝到程序的目录下面 - debug一份 ,release一份。
二选1,那个都可以。我选择使用第二种,怕以后打包的时候记住这,
变量名: TESSDATA_PREFIX
变量值:D:\Program Files\Tesseract-OCR\tessdata
识别的库可以到网上下载,我刚开始安装的时候是使用setup安装的方式进行下载地址https://github.com/tesseract-ocr/tessdata
标准库地址:
#include "allheaders.h"
#include "baseapi.h"
#include "allheaders.h"
#include "baseapi.h"
using namespace std;
using namespace tesseract;
{
char* outText;
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI(); //声明tesseract-orc识别对象
// eng - 这个是识别的模块库名称,对应字体库存放的目录
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// Open input image with leptonica library
Pix* image = pixRead("d:/tiepai-num-small.jpg"); //设置需要识别的图片文件路径
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text(); //获取输出内容
qDebug() << "Images are converted to text using OCR:" << outText;
printf("OCR output:\n%s", outText);
// Destroy used object and release memory
api->End();
delete[] outText;
pixDestroy(&image);
}
1 在windows下使用vcpkg 编辑很方便,除了git 下载有些问题。
2 vcpkg提供的是标准的COR字库,可以识别标志的文字,手写或特殊的需要使用jTessBoxEditorFX进行训练使用
下面的这个地址我没有操作过不过觉得对初学者有帮助;c++ opencv 身份证OCR识别:前期数据训练库准备(tesseractOCR)_stopping5的博客-CSDN博客
Opencv+tesseract+QT OCR字符识别案例_stopping5的博客-CSDN博客,写的很全面
tesseract 下载setup形式
语言包下载:https://github.com/tesseract-ocr/tesseract/wiki/Data-Files。
实用例子: tesseract+opencv进行验证码识别_nienelong3319的博客-CSDN博客_opencv tesseract
tessecat库名 语言
afr Afrikaans(南非荷兰语)
amh Amharic(阿姆哈拉语)
ara Arabic(阿拉伯语)
asm Assamese(阿萨姆)
aze Azerbaijani(阿塞拜疆)
aze_cyrl Azerbaijani - Cyrilic(阿塞拜疆-Cyrilic)
bel Belarusian(白俄罗斯)
ben Bengali(孟加拉)
bod Tibetan(西藏)
bos Bosnian(波斯尼亚)
bul Bulgarian(保加利亚语)
cat Catalan; Valencian(加泰罗尼亚语; 巴伦西亚)
ceb Cebuano(宿务)
ces Czech(捷克)
chi_sim Chinese - Simplified(中国-简体)
chi_tra Chinese - Traditional(中国-繁体)
chr Cherokee(切诺基)
cym Welsh(威尔士)
dan Danish(丹麦)
dan_frak Danish - Fraktur(丹麦-Fraktur)
deu German(德国)
deu_frak German - Fraktur(德国-Fraktur)
dzo Dzongkha(不丹文)
ell Greek, Modern (1453-)(希腊,现代(1453-))
eng English(英语)
enm English, Middle (1100-1500)(英语,中东(1100-1500))
epo Esperanto(世界语)
equ Math / equation detection module(数学/方程式检测模块)
est Estonian(爱沙尼亚)
eus Basque(巴斯克)
fas Persian(波斯)
fin Finnish(芬兰)
fra French(法语)
frk Frankish(法兰克)
frm French, Middle (ca.1400-1600)(法国,中东(ca.1400-1600))
gle Irish(爱尔兰)
glg Galician(加利西亚)
grc Greek, Ancient (to 1453)(希腊语,古(到1453年))
guj Gujarati(古吉拉特语)
hat Haitian; Haitian Creole(海天; 海地克里奥尔语)
heb Hebrew(希伯来语)
hin Hindi(印地文)
hrv Croatian(克罗地亚)
hun Hungarian(匈牙利)
iku Inuktitut(因纽特语)
ind Indonesian(印尼)
isl Icelandic(冰岛)
ita Italian(意大利语)
ita_old Italian - Old(意大利语-旧)
jav Javanese(爪哇)
jpn Japanese(日本)
kan Kannada(卡纳达语)
kat Georgian(格鲁吉亚)
kat_old Georgian - Old(格鲁吉亚-旧)
kaz Kazakh(哈萨克斯坦)
khm Central Khmer(中央高棉)
kir Kirghiz; Kyrgyz(柯尔克孜; 吉尔吉斯)
kor Korean(韩国)
kur Kurdish(库尔德人)
lao Lao(老挝)
lat Latin(拉丁)
lav Latvian(拉脱维亚)
lit Lithuanian(立陶宛)
mal Malayalam(马拉雅拉姆语)
mar Marathi(马拉)
mkd Macedonian(马其顿)
mlt Maltese(马耳他)
msa Malay(马来文)
mya Burmese(缅甸)
nep Nepali(尼泊尔)
nld Dutch; Flemish(荷兰; 佛兰芒语)
nor Norwegian(挪威)
ori Oriya(奥里亚语)
osd Orientation and script detection module(定位及脚本检测模块)
pan Panjabi; Punjabi(旁遮普语; 旁遮普语)
pol Polish(波兰)
por Portuguese(葡萄牙语)
pus Pushto; Pashto(普什图语; 普什图语)
ron Romanian; Moldavian; Moldovan(罗马尼亚; 摩尔多瓦; 摩尔多瓦)
rus Russian(俄罗斯)
san Sanskrit(梵文)
sin Sinhala; Sinhalese(僧伽罗语; 僧伽罗语)
slk Slovak(斯洛伐克)
slk_frak Slovak - Fraktur(斯洛伐克- Fraktur)
slv Slovenian(斯洛文尼亚)
spa Spanish; Castilian(西班牙语; 卡斯蒂利亚)
spa_old Spanish; Castilian - Old(西班牙语; 卡斯蒂利亚-老)
sqi Albanian(阿尔巴尼亚)
srp Serbian(塞尔维亚)
srp_latn Serbian - Latin(塞尔维亚语-拉丁语)
swa Swahili(斯瓦希里语)
swe Swedish(瑞典)
syr Syriac(叙利亚)
tam Tamil(泰米尔)
tel Telugu(泰卢固语)
tgk Tajik(塔吉克斯坦)
tgl Tagalog(菲律宾语)
tha Thai(泰国)
tir Tigrinya(提格雷语)
tur Turkish(土耳其)
uig Uighur; Uyghur(维吾尔族; 维吾尔)
ukr Ukrainian(乌克兰)
urd Urdu(乌尔都语)
uzb Uzbek(乌兹别克斯坦)
uzb_cyrl Uzbek - Cyrilic(乌兹别克斯坦- Cyrilic)
vie Vietnamese(越南语)
yid Yiddish(意第绪语)