opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程

目录

1、opencv源码下载:

2、cmake下载安装

3、tesseract下载编译

4、编译opencv 

5、测试(sample) end_to_end_recognition项目


本博客主要介绍opencv4.1.1编译过程,及end_to_end_recognition.CPP文字识别例子调试。编译过程中忽略python接口及GPU模式。

1、opencv源码下载:

opencv在github的项目主页为:https://github.com/opencv,项目包含如下内容:

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第1张图片

我们下载其中的两个项目,本位下载到E盘opencv4.1文件夹下,

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

 

当然如果不使用git的话,也可以直接下载压缩包解压获得源码。

获得源码后,我们还需要一些准备工作,一是cmake安装,二是tesseract编译。

 

2、cmake下载安装

可以在https://cmake.org/download/网址选择下载版本

选择cmake-3.15.1-win64-x64.msi下载,按照提示安装。

 

3、tesseract下载编译

Tesseract(识别引擎),一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,opencv字符识别例子使用了该引擎。因此要先对其进行下载编译。

下载 tesseract 源码 :

git clone https://github.com/tesseract-ocr/tesseract.git

 

下载cppan

从https://cppan.org/client/ 网址选择 cppan-master-Windows-client.zip进行下载

解压后只有一个cppan.exe文件,为了方便命令行调用,我们将其拷贝到“C:\Windows\System32”目录下。

生成x64版本的解决方案

cd tesseract   # 进入源代码目录
cppan    # 下载相关的的依赖,【下载时间可能很长,需要耐心等待】
mkdir win64 && cd win64
cmake .. -G "Visual Studio 14 2015 Win64"

用VS2015打开win64目录下“tesseract.sln”,编译ALL_BUILD,会遇到一些错误,基本都属于Training Tools类别里的,我们不去理会,继续运行INSTALL,在debug和release下各执行一遍。 程序默认的安装目录是“C:\Program Files\tesseract”;

 

4、编译opencv 

打开cmake-gui.exe,选择源码路径和生成二进制路径,然后点一下config按钮,

等待结束后,在Search框查找world, 将BUILD_opencv_world选项勾选,将会将所有动态库整合为一个。

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第2张图片

查找extra,将OPENCV_EXTRA_MODULES_PATH值设置为下载的opencv_contrib/modules目录。

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第3张图片

再一次点击“Configure”按钮

查找examples,将BUILD_EXAMPLES勾选

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第4张图片

再次点击“Configure”按钮

等红色条目没有的时候,依次点击“Generate”,“Open Project”按钮,用VS2015打开。

先编译opencv_world

出现错误:

1、C1083    无法打开包括文件: “tesseract/baseapi.h”: No such file or directory

解决方法:将“C:\Program Files\tesseract\include”添加到工程包含目录。

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第5张图片

2、 出现:LNK1104    无法打开文件“pvt.cppan.demo.danbloomberg.leptonica.lib”

我这里解决方法是:将C:\Program Files\tesseract\lib目录下带版本的pvt.cppan.demo.danbloomberg.leptonica-1.76.0.lib复制一份,改名为pvt.cppan.demo.danbloomberg.leptonica.lib,同样方法修改pvt.cppan.demo.libarchive.libarchive.lib。

ALL_BUILD编译成功后,执行INSTALL进行安装。用Debug和Release模式分别编译安装。

 

5、测试(sample) end_to_end_recognition项目

在samples->text下找到(sample) end_to_end_recognition,设置为启动项

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第6张图片

在进行如下配置:

1、添加项目命令参数(测试图片路径): “E:\opencv4.1\opencv_contrib\modules\text\samples\scenetext01.jpg”

opencv4.1.1 源码VS2015环境编译,包含samples,opencv_contrib部分,调试end_to_end_recognition工程_第7张图片

2、修改模型文件路径: 在end_to_end_recognition.cpp文件中找到下面内容:

    Ptr er_filter1 = createERFilterNM1(loadClassifierNM1("trained_classifierNM1.xml"),8,0.00015f,0.13f,0.2f,true,0.1f);
    Ptr er_filter2 = createERFilterNM2(loadClassifierNM2("trained_classifierNM2.xml"),0.5);

修改为:

    Ptr er_filter1 = createERFilterNM1(loadClassifierNM1("E:\\opencv4.1\\opencv_contrib\\modules\\text\\samples\\trained_classifierNM1.xml"),8,0.00015f,0.13f,0.2f,true,0.1f);
    Ptr er_filter2 = createERFilterNM2(loadClassifierNM2("E:\\opencv4.1\\opencv_contrib\\modules\\text\\samples\\trained_classifierNM2.xml"),0.5);

3、添加OCRTesseract::create()路径参数:在end_to_end_recognition.cpp文件中找到下面内容:

Ptr ocr = OCRTesseract::create();

修改为

Ptr ocr = OCRTesseract::create("C:\\Program Files (x86)\\Tesseract-OCR\\tessdata");

由于模型创建需要tessdata文件夹的内容,因此需要先从https://github.com/UB-Mannheim/tesseract/wiki下载tesseract-ocr安装包,目前最新的版本是tesseract-ocr-w64-setup-v5.0.0-alpha.20190708.exe 。下载完安装到C:\\Program Files (x86)目录下。

4、如果运行时提示找不到“tesseract50d.dll”文件,可以把“C:\Program Files\tesseract\bin”添加到系统目录。

运行程序,得到识别效果如下

 

 

你可能感兴趣的:(opencv)