Leptonica
Leptonica is a pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications.
http://www.leptonica.com/
Featured operations are
Ancillary operations include
Example applications include
————————————————————————————————————————————————————————
最近做个图像识别的东西,需要将图片中的文字识别出来。
使用tesseract ORC,又发现tesseract ORC依赖leptonica,于是,干脆把leptonica也弄弄好了。
http://www.leptonica.com/
可以下载:
leptonica-1.68.tar.gz //源码 linux
vs2008-1.68.zip ///源码 Windows vs2008
leptonica-1.68-win32-lib-include-dirs.zip //头文件和lib
安装gnuplot
环境变量PATH加入 C:\gnuplot\bin(安装路径\bin,可能也是binary)
创建新环境变量GDFONTPATH 值为C:\WINDOWS\Fonts
创建新环境变量GNUPLOT_FONTPATH值为C:\WINDOWS\Fonts
安装IrfanView
环境变量PATH加入C:\Program Files\IrfanView (安装路径)
解压 leptonica-1.68-win32-lib-include-dirs.zip //头文件和lib
环境变量PATH加入D:\share\leptonica-1.68\lib (解压路径), 这里如果不加的话,需要将dll放到你的工程目录下。因为运行过程中需要调用liblept168.dll这个动态链接库。否刚的话,肯定会报这个“liblept168.dll找不到”的。
xxx..vcproj 同一个目录
新建一个工程,设置Include files路径和lib库路径
即你解压后的Include
导入lib库
建立link到leptonica的新的空工程,工程配置里linker->input里加入leptonica的lib
link动态库的release版:leptonlib168.dll
ink动态库的debug版:leptonlib168d.dll(168是版本号)
link静态库的release版:
giflib$(GIFLIB_VERSION)-static-mtdll.lib
libjpeg$(LIBJPEG_VERSION)-static-mtdll.lib
libpng$(LIBPNG_VERSION)-static-mtdll.lib
libtiff$(LIBTIFF_VERSION)-static-mtdll.lib
zlib$(ZLIB_VERSION)-static-mtdll.lib
liblept$(LIBLEPT_VERSION)-static-mtdll.lib
link静态库的debug版:
......
如果你找不到GIFLIB_VERSION 类似这些变量的话,写死也行的。就是解压的那些库
giflib416-static-mtdll.lib
giflib416-static-mtdll-debug.lib
libjpeg8c-static-mtdll.lib
libjpeg8c-static-mtdll-debug.lib
libpng143-static-mtdll.lib
libpng143-static-mtdll-debug.lib
libtiff394-static-mtdll.lib
libtiff394-static-mtdll-debug.lib
zlib125-static-mtdll.lib
zlib125-static-mtdll-debug.lib
liblept168.lib
liblept168d.lib
相对来说代码都相当简单了。
// my-leptonica.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <allheaders.h> int _tmain(int argc, _TCHAR* argv[]) { PIX *pixs, *pixt1, *pixt2; pixs = pixRead("..\\..\\test\\test.bmp"); pixDisplayWithTitle(pixs, 700, 500, NULL, 1); pixDestroy(&pixs); return 0; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以后的笔记潇汀会尽量详细讲解一些相关知识的,希望大家继续关注我的博客。
本节笔记到这里就结束了。
潇汀一有时间就会把自己的学习心得,觉得比较好的知识点写出来和大家一起分享。
编程开发的路很长很长,非常希望能和大家一起交流,共同学习,共同进步。
如果文章中有什么疏漏的地方,也请大家指正。也希望大家可以多留言来和我探讨编程相关的问题。
最后,谢谢你们一直的支持~~~
C++完整个代码示例(代码在VS2005下测试可运行)