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

本文详细介绍了Leptonica库的功能、安装步骤及如何将其应用于图像识别项目中。通过实例展示了如何利用Leptonica进行图像处理、分析及文本识别等操作,旨在帮助开发者更高效地实现图像相关应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

        


新建一个工程,设置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下测试可运行)

       



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值