QT + MSVC + tesseract + vcpkg 环境配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、系统环境

二、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安装配置

安装vcpkg之前我们需要先安装Git ,

1.下载

以管理员身份进入Windows PowerShell,

运行: git clone https://github.com/microsoft/vcpkg

不推荐进入cmd命令,说是在后面编译的时候慢.

2.编译vcpkg

执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令

三、Tesseract编辑安装

1.标准编译安装 

进入vcpkg的目录执行下载安装编译 

.\vcpkg install tesseract:x64-windows

2.github文件下载失败解决方法

使用 先下载后编译的方法进行,推荐使用此方法,国内的git不说了坑的要死

./vcpkg install tesseract:x64-windows --only-downloads

./vcpkg install tesseract:x64-windows 

github文件下载失败,可以将下载的文件使用其他下载工具进行下载,循环反复下载完全部文件。

注意下载文件的文件名与vcpkg中的保持一致,

推荐使用云盘下载下下载,然后在下载到本地。

四、qt配置

1 Pro文件配置

在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文件配置后不能进行调试。有人知道原因么?

QT + MSVC + tesseract + vcpkg 环境配置_第1张图片

2 配置tesseract环境变量

注意,注意,注意这个地方一开始没注意反复处理的好久否则程序运行不起来会报错。希望有知道原理的大猿讲解下。

1.将vcpkg的xxx\vcpkg\packages\tesseract_x64-windows\tools\tesseract设置为系统环境变量,2次测试无效,不知道具体原因,debug模式运行不起来

2.将xxx\vcpkg\packages\tesseract_x64-windows\tools\tesseract路径下的文件全部拷贝到程序的目录下面 - debug一份 ,release一份。

二选1,那个都可以。我选择使用第二种,怕以后打包的时候记住这,

3 配置tesseract环境变量的语言库环境变量

变量名: TESSDATA_PREFIX

变量值:D:\Program Files\Tesseract-OCR\tessdata

识别的库可以到网上下载,我刚开始安装的时候是使用setup安装的方式进行下载地址https://github.com/tesseract-ocr/tessdata

标准库地址:

QT + MSVC + tesseract + vcpkg 环境配置_第2张图片

QT + MSVC + tesseract + vcpkg 环境配置_第3张图片

3 qt文件引用include

#include "allheaders.h"
#include "baseapi.h"

五、demo实例

#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(意第绪语)

你可能感兴趣的:(Qt开发,tesseract,qt,开发语言)