• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

cmake/H02-May-2018-225181

prog/H03-May-2022-69,63950,571

src/H03-May-2022-240,366138,842

.gitignoreH A D02-May-2018499 4942

.travis.ymlH A D02-May-20181.4 KiB5243

DoxyfileH A D02-May-2018102.8 KiB2,4071,860

Makefile.amH A D03-May-2022274 96

README.mdH A D02-May-20185.3 KiB7862

appveyor.ymlH A D02-May-20181.1 KiB3829

autobuildH A D02-May-2018325 1610

configure.acH A D02-May-20187.4 KiB230190

cppan.ymlH A D02-May-20181.5 KiB7565

lept.pc.cmakeH A D02-May-2018366 1210

lept.pc.inH A D02-May-2018373 1310

make-for-autoH A D02-May-2018178 92

make-for-localH A D02-May-2018165 92

sw.cppH A D02-May-20182.4 KiB7361

README.md

1# Leptonica Library #
2
3[![Build Status](https://travis-ci.org/DanBloomberg/leptonica.svg?branch=master)](https://travis-ci.org/DanBloomberg/leptonica)
4[![Build status](https://ci.appveyor.com/api/projects/status/vsk607rr6n4j2tmk?svg=true)](https://ci.appveyor.com/project/DanBloomberg/leptonica)
5[![Coverity Scan Build Status](https://scan.coverity.com/projects/leptonica/badge.svg)](https://scan.coverity.com/projects/leptonica)
6
7www.leptonica.org
8
9## The library supports many operations that are useful on ##
10
11  * Document images
12  * Natural images
13
14## Fundamental image processing and image analysis operations ##
15
16  * Rasterop (aka bitblt)
17  * Affine transforms (scaling, translation, rotation, shear) on images of arbitrary pixel depth
18  * Projective and bilinear transforms
19  * Binary and grayscale morphology, rank order filters, and convolution
20  * Seedfill and connected components
21  * Image transformations with changes in pixel depth, both at the same scale and with scale change
22  * Pixelwise masking, blending, enhancement, arithmetic ops, etc.
23
24## Ancillary utilities ##
25
26  * I/O for standard image formats (_jpg_, _png_, _tiff_, _webp_, _jp2_, _bmp_, _pnm_, _gif_, _ps_, _pdf_)
27  * Utilities to handle arrays of image-related data types (e.g., _pixa_, _boxa_, _pta_)
28  * Utilities for stacks, generic arrays, queues, heaps, lists; number and string arrays; etc.
29
30## Examples of some applications enabled and implemented ##
31
32  * Octcube-based color quantization (w/ and w/out dithering)
33  * Modified median cut color quantization (w/ and w/out dithering)
34  * Skew determination of text images
35  * Adaptive normalization and binarization
36  * Segmentation of page images with mixed text and images
37  * Location of baselines and local skew determination
38  * jbig2 unsupervised classifier
39  * Border representations of 1 bpp images and raster conversion for SVG
40  * Postscript generation (levels 1, 2 and 3) of images for device-independent output
41  * PDF generation (G4, DCT, FLATE) of images for device-independent output
42  * Connectivity-preserving thinning and thickening of 1 bpp images
43  * Image warping (captcha, stereoscopic)
44  * Image dewarping based on content (textlines)
45  * Watershed transform
46  * Greedy splitting of components into rectangles
47  * Location of largest fg or bg rectangles in 1 bpp images
48  * Search for least-cost paths on binary and grayscale images
49  * Barcode reader for 1D barcodes (very early version as of 1.55)
50
51## Implementation characteristics ##
52
53  * _Efficient_: image data is packed binary (into 32-bit words); operations on 32-bit data whenever possible
54  * _Simple_: small number of data structures; simplest implementations provided that are efficient
55  * _Consistent_: data allocated on the heap with simple ownership rules; function names usually begin with primary data structure (e.g., _pix_); simple code patterns throughout
56  * _Robust_: all ptr args checked; extensive use of accessors; exit not permitted
57  * _Tested_: thorough regression tests provided for most basic functions; valgrind tested
58  * _ANSI C_: automatically generated prototype header file
59  * _Portable_: endian-independent; builds in Linux, macOS, MinGW, Cygwin, Windows
60  * _Nearly thread-safe_: ref counting on some structs
61  * _Documentation_: large number of in-line comments; doxygen; web pages for further background
62  * _Examples_: many programs provided to test and show usage of approx. 2600 functions in the library
63
64
65## Open Source Projects that use Leptonica ##
66  * [tesseract](https://github.com/tesseract-ocr/tesseract/) (optical character recognition)
67  * [OpenCV](https://github.com/opencv/opencv) (computer vision library)
68  * [jbig2enc](https://github.com/agl/jbig2enc) (encodes multipage binary image documents with jbig2 compression)
69
70## Major contributors to Leptonica ##
71  * Tom Powers: Tom has supported Leptonica on Windows for many years.  He has made many contributions to code quality and documentation, including the beautiful "unofficial documentation" on the web site. Without his effort, Leptonica would not run today on Windows.
72  * David Bryan: David has worked for years to support Leptonica on multiple platforms. He designed many nice features in Leptonica, such as the severity-based error messaging system, and has identified and fixed countless bugs. And he has built and tested each distribution many times on cross-compilers.
73  * James Le Cuirot: James has written and supported the autotools scripts on Leptonica distributions for many years, and has helped test every distribution since 1.67.
74  * Jeff Breidenbach: Jeff has built every Debian distribution for Leptonica. He has also made many improvements to formatted image I/O, including tiff, png and pdf. He is a continuous advocate for simplification.
75  * Egor Pugin: Egor is co-maintainer of Leptonica on GitHub. He ported everything, including all the old distributions, from Google Code when it shut down. He set Leptonica up for appveyor and travis testing, and has implemented the cppan project, which simplifies building executables on Windows.
76  * Jürgen Buchmüller: Jürgen wrote text converters to modify Leptonica source code so that it generates documentation using doxygen. He also wrote tiff wrappers for memory I/O.
77  * Stefan Weil:: Stefan has worked from the beginning to clean up the Leptonica github distribution, including removing errors in the source code.  He also suggested and implemented the use of Coverity Scan.
78