1.软件包准备

  • opencv源码包地址:                官网  github
  • opencv_contrib源码包地址:   github
  • Tesseract源码包地址:            github
  • cmake.exe 下载地址:             官网

注意: opencv和open_contrib包的版本号要一致(比如都是3.4.0)

Tesseract源码安装参考: win10 vs2015源码编译tesseract4.0

2. 使用cmake生成解决方案

分别指定源码包(source code)存放位置, 编译过程中产生的二进制(build the binaries)文件存放位置, 然后点击"Configure",  指定对应版本的编译器, 例如Visual Studio 14 2015 Win64,即使用vs2015生成x64解决方案,[“Visual Studio 14 2015”生成x86解决方案]。 然后点击"Finish"。 第一次配置完成后,会出现很多红色提示,如下图:

需要修改对应的配置后  点击Configure, 反复Configure直至红色完全消失,然后点击"Generate" 即可生成对应的解决方案。

修改配置如下:

  • BUILD_opencv_world: 将.lib或者.dll文件统一整合进一个world文件中,方便使用。但若想只使用一部分模块可不勾选以减少体积。生成动态链接库dll需要勾选BUILD_SHARED_LIBS
  • ENABLE_CXX11: 支持c11特性
  • OPENCV_EXTRA_MODULES_PATH:  若使用opencv_contrib模块,则在此处填写解压后的路径,如 F:\opencv_contrib\modules\
  • Tesseract_INCLUDE_DIR:  Tesseract头文件所在路径
  • Tesseract_LIBRARY:  Tesseract lib文件所在路径
  • Lept_LIBRARY:  leptonica lib文件所在路径 (很重要, 一定要配置,否则可能找不到Tesseract)

建议取消勾选:

  • BUILD_DOCS :生成文档,需要安装Doxygen。官网提供了在线文档和离线文档。
  • BUILD_opencv_ts :一些单元测试代码。
  • INSTALL_TESTS :与开发无关。

点击configure后一定要保证Tesseract为YES, 如下图:

否则在编译完end_to_end_recognition.cpp后,在运行时出现如下提示。

OCRTesseract(00): Tesseract not found.

起初的几次编译怎么都找不到Tesseract

后来通过opencv_contrib\modules\text下的CMakeLists.txt

以及opencv_contrib\modules\text\cmake 下的FindTesseract.cmake

发现LEPT_LIBRARY没有找到对应的配置

3. 编译

打开OpenCV.sln,  选择”Release"模式,选择"生成"->"生成解决方案"

编译成功后 可选择进行安装

然后选择"Debug"模式,重复上面操作。

再将生成的opencv_world340d.dll、opencv_img_hash340d.dll拷贝到安装目录下的x64\vc14\bin中

opencv_world340d.lib、opencv_img_hash340d.lib拷贝到安装目录下的x64\vc14\lib中。

opencv的安装目录为 C:/opencv

效果:

4.添加环境变量

为了保证程序在运行时能够访问到opencv_world340.dll或者opencv_world340d.dll

需要在环境变量PATH中添加

C:\opencv\build\x64\vc14\bin

5. 测试

1) 打开vs2015, 新建win32项目, 勾选”空项目", 取消"安装开发生命周期检查"

2) “右击”对应的项目>选择“属性"

3) 选择"Vc++目录", 点击”包含目录", “编辑", 添加

C:\opencv\build\include\
C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2

4) 点击"库目录", ”编辑", 添加:

C:\opencv\build\x64\vc14\lib

5) 选择"链接器"->"输入",

relase模式添加:

opencv_world340.lib

debug模式添加:

opencv_world340d.lib

6) 效果如下图:

7)

测试程序1:

#include <opencv2/opencv.hpp>
#include <string>
using namespace cv;
using namespace std; int main()
{
Mat im = imread("lena.jpg"); // lena.jpg和test1.cpp在同一个目录下
namedWindow("Picture");
imshow("Picture", im);
waitKey(0);
destroyWindow("Picture");
return 0;
}

test1.cpp

测试结果: test1.cpp在X64 DEBUG和RELEASE模式下都能通过

测试程序2):

end_to_end_recognition.cpp

测试用到的文件end_to_end_recognition.cpp、scenetext01.jpg、trained_classifierNM1.xml、trained_classifierNM2.xml都位于opencv_contrib源码包目录下的modules\text\samples中

为了测试方便,右击项目属性,设置命令行参数

将scenetext01.jpg、trained_classifierNM1.xml、trained_classifierNM2.xml复制到与end_to_end_recognition.cpp相同目录下,运行即可。

如果使用命令行运行程序,则需要将scenetext01.jpg、trained_classifierNM1.xml、trained_classifierNM2.xml 复制到可执行程序所在目录

效果:

测试结果: 在x64 RELASE模式下通过, DEBUG模式下出错。

注意: 由于编译opencv使用的tesseract的lib为release版本,所以在“DEBUG"模式下会出错:

但是在Release模式仍然能够调试

win10 vs2015源码编译opencv、opencv_contrib、Tesseract的更多相关文章

  1. win10 vs2015源码编译tesseract4.0

    1.安装软件 cmake  下载地址 cppan   下载地址 安装完毕后,需要将cmake.exe和cppan.exe加入环境变量PATH中 cmake简介 CMake全称为“cross platf ...

  2. windows 10 上源码编译OpenCV并支持CUDA | compile opencv with CUDA support on windows 10

    本文首发于个人博客https://kezunlin.me/post/6580691f/,欢迎阅读! compile opencv with CUDA support on windows 10 Ser ...

  3. ubuntu 16.04源码编译OpenCV教程 | compile opencv on ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/15f5c3e8/,欢迎阅读! compile opencv on ubuntu 16.04 Series Part 1: comp ...

  4. 解决 Ubuntu16.04 + opencv4.1 源码编译错误 Makefile:160: recipe for target 'all' failed

    最近源码编译 opencv,出现下面的错误 [ %] Built target opencv_dnn Makefile:: recipe for target 'all' failed google ...

  5. Ubuntu 17.04版本下,opencv进行源码编译安装

    本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用. 安装 gcc cmake 编译环境 sudo apt-get ins ...

  6. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  7. OpenCV - Windows(win10)编译opencv + opencv_contrib

    在之前的几篇文章中,我提到了在Android.Linux中编译opencv + opencv_contrib,这篇文章主要讲在Windows中编译opencv + opencv_contrib. 首先 ...

  8. linux源码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...

  9. OpenCV学习:OpenCV源码编译(vc9)

    安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要 ...

随机推荐

  1. UVA548 tree的思路

    唔,首先这题给出了中序遍历和后序遍历要求我们求出, 一个叶子节点到根的数值总和最小,且这个叶子节点是最小的那个 这题的难点在于如何运用中序遍历和后序遍历还原整棵树, 这里有两个方法: 1. 递归构造原 ...

  2. 更改Windows更新源(解决公司内部网络无法下载语言包或更新的问题)

    打开注册表 找到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate 将WUServer.WUStatusServe ...

  3. Datediff的使用(统计本日,昨日,本周,本月)

    //统计本日,昨日,本周,本月添加的产品总数 //日期            DateTime DT = DateTime.Now;            string day=DT.Date.ToS ...

  4. 面向对象的JavaScript-小结

    Javascript中的类 类是对象的模板,用于创建共享一系列属性和方法的类似对象. 使用new关键字调用函数,可以创建对象实例. function Accommodation(){}; var ho ...

  5. fiddler 一些不为人知的功能

    1. fiddler的ctrl+F查找功能 可以进行正则表达式查找: 勾选Regular Expression,find中出现REGEX:,在这后面输入正则表达式即可进行匹配查找 2. fiddler ...

  6. Node版本管理工具-NVM的安装与使用(windows系统)

    友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...

  7. 安装了低版本Jdk后eclipse无法打开的终极解决方法

    环境jdk1.7.0_17,eclipse oxygen(2017年6月发布) 因为之前安装的是jdk1.8.0_144,所以eclipse的相关配置都修改成了jdk1.8的版本,然而,近期因为某些原 ...

  8. OO第二次博客作业(第二单元总结)

    在我开始写这次博客作业的时候,窗外响起了希望之花,由此联想到乘坐自己写的电梯FROM-3-TO--1下楼洗澡,然后······ 开个玩笑,这么辣鸡的电梯肯定不会投入实际使用的,何况只是一次作业.还是从 ...

  9. Web前端学习第二天(cookie 一)

    CookIe安全 cookie一个神奇的机制,无论什么请求中都会带有cookie字段. 可以通过服务器响应头的Set-Cookie字段添加,修改和删除,大多数情况下,客户端通过JavaScript也可 ...

  10. eclipse运行无错的ssm项目,迁移到idea出错

    我的报错信息为mapper绑定相关错误,是因为idea在构建项目时,target/classes目录下不存在mapper.xml文件 解决方法: <!-- 在maven中添加以下配置,它的父标签 ...