8

利用OpenCV第三方库编译Leptonica

 2 years ago
source link: https://blog.matrixs.site/post/2017-06-17-leptonica-%E7%BC%96%E8%AF%91leptonica/%E5%88%A9%E7%94%A8opencv%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93%E7%BC%96%E8%AF%91leptonica.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

  OpenCV对于做计算机视觉这一行的人肯定非常熟悉,相较于它,另外一个开源库Leptonica就相对小众很多。Leptonica主要是面向教学用途的开源库。最有名的OCR开源库Tesseract就是利用Leptonica作为基础库使用的,尽管如此,Leptonica中使用的一些算法仍值学习,本文就简单介绍下VS编译方法及过程。   

  1. Leptonica
  2. OpenCV
  3. CMake
  4. Visual Studio (本文以2015版为例)
  5. 由于Leptonica对于图像读写操作也是依赖第三方库,而且和OpenCV一样,所以采用OpenCV内提供的3rdparty\src来编译。如果不想使用OpenCV内的,其自行下载如下五个库编译: zlib libpng libjpeg libtiff libgif

编译OpenCV

  这里不详细说明,但强调下,OpenCV一定需要重新编译,因为要使用到重新编译后生成的lib文件及两个头文件。具体过程请参考博客《OpenCV源码环境配置(2.X版及3.X版 + VS2008/VS2013 + win7 x86)》

编译Leptonica

CMake生成工程

  解压Leptonica源码包,利用CMake将Leptonica源码包生成所需版本。

Leptonica_Build1.png

  打开CMake后的工程,按如下步骤配置leptonica工程。 Additional Include Directions:

..\opencv\sources\3rdparty\zlib;
..\opencv\sources\3rdparty\libtiff;
..\opencv\sources\3rdparty\libpng;
..\opencv\sources\3rdparty\libjpeg;
..\leptonica\source\src;
..\$cmake时指定的leptonica工程目录$\src;
..\include\3rdparty;(这个目录为自建目录,将OpenCV编译后,工程文件夹内3rdparty\zlib和3rdparty\libtiff目录下zconf.h和tif_config.h两个文件拷贝至此)

Additional Library Directions:  

..\install\x64\vc14\staticlib;(OpenCV重新编译后,生成的lib文件所在目录)

Additional Dependencies:

Release      or  Debug
libjpeg.lib  or  libjpegd.lib
libpng.lib   or  libpngd.lib
libtiff.lib  or  libtiffd.lib
zlib.lib     or  zlibd.lib

Preprocessor Definitions中添加:

LIBLEPT_EXPORTS

  找到config_auto.h,修改里面宏定义,添加:

#define HAVE_LIBPNG 1
#define HAVE_LIBJPEG 1
#define HAVE_LIBTIFF 1
#define HAVEL_LIBZ 1

  此时编译工程会出现’INT32’ redefinition的错误。到jmorecfg.h

#ifndef XMD_H			/* X11/xmd.h correctly defines INT32 */
typedef long INT32;
#endif
#include <Windows.h>    /* Added by wujiyang 2017.6.13  14:18  complier dlib for leptonica */      
#ifndef XMD_H           /* X11/xmd.h correctly defines INT32 */      
#ifndef _BASETSD_H_     /* Microsoft defines it in basetsd.h */      
#ifndef _BASETSD_H      /* MinGW is slightly different */      
#ifndef QGLOBAL_H       /* Qt defines it in qglobal.h */      
typedef long INT32;      
#endif      
#endif      
#endif      
#endif  

  至此就完成leptonica工程配置,可以重编工程了。

使用重编后的库

  只需将刚编译好的leptonica-版本号d.dllleptonica-版本号.dll(工程目录bin文件夹中)拷贝至所需工程下即可。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK