【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)

时间:2021-12-28 09:05:13

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

  • Rasterop (a.k.a. bitblt)
  • Affine transformations (scaling, translation, rotation, shear) on images of arbitrary pixel depth
  • Binary and grayscale morphology, rank order, and convolution
  • Seedfill and connected components
  • Image transformations combining changes in scale and pixel depth
  • Pixelwise masking, blending, enhancement, arithmetic ops, etc.

Ancillary operations include

  • I/O for standard image formats
  • Utilities to handle arrays of image-related data types
  • Utilities for generic stacks, queues, heaps and lists; and for byte queues and arrays of numbers and strings

Example applications include

  • Octcube-based color quantization, with and without dithering
  • Modified median-cut color quantization, with and without dithering
  • Skew determination of text images
  • Segmentation of page images with mixed text and images
  • jbig2 unsupervised classifier
  • Border representations of 1 bit/pixel images and raster conversion for SVG
  • PostScript generation (levels 1, 2, 3) of images for device-independent output
  • PDF generation (levels 1, 2) of images for device-independent output
  • Dewarping images of text taken with a camera
  • Rendering text on an image
  • Connectivity-preserving thinning and thickening of 1 bit/pixel images
  • Line removal from a grayscale sketch
  • Search for least-cost paths on binary and grayscale images

————————————————————————————————————————————————————————

最近做个图像识别的东西,需要将图片中的文字识别出来。

使用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 同一个目录

【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)

新建一个工程,设置Include files路径和lib库路径

即你解压后的Include

        【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)

【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)

导入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下测试可运行)

【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)