Skip to content

Leptonica.org is an open source site containing software that is broadly useful for image processing and image analysis applications

Notifications You must be signed in to change notification settings

PlusToolkit/leptonica

 
 

Repository files navigation

Leptonica Library

Build Status Build status

www.leptonica.org

The library supports many operations that are useful on

  • Document images
  • Natural images

Fundamental image processing and image analysis operations

  • Rasterop (aka bitblt)
  • Affine transforms (scaling, translation, rotation, shear) on images of arbitrary pixel depth
  • Projective and bilinear transforms
  • Binary and grayscale morphology, rank order filters, and convolution
  • Seedfill and connected components
  • Image transformations with changes in pixel depth, both at the same scale and with scale change
  • Pixelwise masking, blending, enhancement, arithmetic ops, etc.

Ancillary utilities

  • I/O for standard image formats (jpg, png, tiff, bmp, pnm, gif, ps, pdf, webp)
  • Utilities to handle arrays of image-related data types (e.g., pixa, boxa, pta)
  • Utilities for stacks, generic arrays, queues, heaps, lists; number and string arrays; etc.

Examples of some applications enabled and implemented

  • Octcube-based color quantization (w/ and w/out dithering)
  • Modified median cut color quantization (w/ and w/out dithering)
  • Skew determination of text images
  • Adaptive normalization and binarization
  • Segmentation of page images with mixed text and images
  • Location of baselines and local skew determination
  • jbig2 unsupervised classifier
  • Border representations of 1 bpp images and raster conversion for SVG
  • Postscript generation (levels 1, 2 and 3) of images for device-independent output
  • PDF generation (G4, DCT, FLATE) of images for device-independent output
  • Connectivity-preserving thinning and thickening of 1 bpp images
  • Image warping (captcha, stereoscopic)
  • Image dewarping based on content (textlines)
  • Watershed transform
  • Greedy splitting of components into rectangles
  • Location of largest fg or bg rectangles in 1 bpp images
  • Search for least-cost paths on binary and grayscale images
  • Barcode reader for 1D barcodes (very early version as of 1.55)

Implementation characteristics

  • Efficient: image data is packed binary (into 32-bit words); operations on 32-bit data whenever possible
  • Simple: small number of data structures; simplest implementations provided that are efficient
  • 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
  • Robust: all ptr args checked; extensive use of accessors; exit not permitted
  • Tested: thorough regression tests provided for most basic functions; valgrind tested
  • Ansi C: automatically generated prototype header file
  • Portable: endian-independent; builds in linux, osx, mingw, cygwin, windows
  • Nearly thread-safe: ref counting on some structs
  • Documentation: large number of in-line comments; web pages for further background
  • Examples: many programs provided to test and show usage of approx. 2200 functions in the library

Open Source Projects that use Leptonica

  • php (scripting language for dynamic web pages)
  • tesseract (optical character recognition)
  • jbig2enc (encodes multipage binary image documents with jbig2 compression)

About

Leptonica.org is an open source site containing software that is broadly useful for image processing and image analysis applications

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 93.8%
  • Shell 3.1%
  • Makefile 2.3%
  • HTML 0.6%
  • CMake 0.2%
  • M4 0.0%