EasyPR(车牌识别系统)在win10&VS2013&X64环境下的编译方法

Posted in openCV By livezingy On 2016年8月22日,5127 Views

       EasyPR是一个开源的中文车牌识别系统,其目标是成为一个简单,高效,准确的车牌识别库。该开源系统基于openCV开源库,可以移植到opencv支持的所有平台,在Github上有全部的源代码。该开源系统可以作为学习openCV的一个极好的范例,本文先记录EasyPR在win10系统下,VS2013 X64下的编译方法。

       1. 参考资料

       EasyPR作者的博客:http://www.cnblogs.com/subconscious/。作者不仅技术实力深厚,写作水平也是一流。博客中有EasyPR开发过程以及相关原理的详细讲解,且同时整理了一份PDF格式EasyPR的开发详解,在这里对作者的辛苦付出与无私开源致以崇高的敬意。

       EasyPR在Github中的地址:https://github.com/liuruoze/EasyPR。

       2.EasyPR的demo界面

       easyPR的demo是基于win32的控制台程序,测试图像的路径都是在程序中写好的,若要更改测试图像,则需要更改程序。

      3.配置openCV3.0的环境变量

      目前最新的EasyPR是基于opencv3.0版本开发的,因此在正式编译EasyPR之前,我们首先需要配置opencv3.0的环境变量。假定opencv的安装目录为D盘的根目录,那么就需要将D:\opencv\build\x64\vc12\bin和D:\opencv\build\x86\vc12\bin添加在“环境变量–>系统变量–>path”中。这一步在网上有很多攻略,这里就不再赘述了。

       4. EasyPR的编译步骤

       4.1 从Github上下载EasyPR的源码,用VS打开工程之后,会发现如果当前解决方案下有两个基于X86项目:demo和libeasypr。其中libeasypr则是基于win32的静态库,该静态库包含了车牌识别系统的所有功能;demo是一个基于win32 console使用easypr的范例,通过调用静态库libeasypr来展示车牌识别的功能。

       如果当前VS2013是x64的,那么需要先在VS2013菜单栏“生成–>配置管理器”中将工程属性更改为x64,更改方式如下:

       4.2 为项目demo和libeaypr配置opencv包含目录和库文件

       分别选中项目demo和libeaypr,打开VS2013菜单栏的“项目–>属性“,选择”配置属性–>VC++目录“,分别配置”包含目录“和”库目录“,如下图所示。

包含目录中添加如下内容:

D:\opencv\build\include\opencv2;

D:\opencv\build\include\opencv;

D:\opencv\build\include;

库目录中添加如下内容:

D:\opencv\build\x64\vc12\staticlib;

D:\opencv\build\x64\vc12\lib;

      在很多配置opencv的范例中都会提到需要在”配置属性–>链接器–>输入”添加“附加依赖项”opencv_world300d.lib; 若是新配置opencv的C++工程, 确实需要添加此项,但EasyPR中此项已添加OK,故可以省去此项步骤。

      4.3 右键单击”Demo”,选择”生成依赖项”–>“项目依赖项”,设置项目demo依赖于libeasypr。打开demo属性页,选择“配置属性”–>“调试”,将工作目录修改为”$(SolutionDir)”。因为easyPR程序中所使用的资源文件夹路径为相对于sln的相对路径,若不进行此项设置,程序会无法打开相关资源文件。

      4.4 理论上进行完上述两个步骤之后,EasyPR应该可以成功编译,但事实并非如此,此时编译会出现如下错误。

       基本都是因为找不到thirdparty文件夹中的相关文件,也许可以通过设置包含文件或其他方式来解决,我这里采用比较简单的解决方案:将thirdparty文件夹拷贝到EasyPR解决方案的include的目录下,这样即可成功编译。

       /*****************************20170511更新*************************/

       解决上述错误的正解在easypr程序包的Usage.md中可以找到,demo和libeasypr需要分别设置,以libeasypr为例,设置方法:libeasypr属性页–>VC++目录–>包含目录,在包含目录中添加 $(SolutionDir);

       /*****************************20170511更新*************************/

你可能感兴趣的:(c++)