Blame version-notes.html

rpm-build 01e673
<html>
rpm-build 01e673
<body BGCOLOR=FFFFE4>
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
<form>
rpm-build 01e673
<center>
rpm-build 01e673
<input type="button" onclick="window.close();" value="Close this window">
rpm-build 01e673
</center>
rpm-build 01e673
</form>
rpm-build 01e673
----- JS Window Closer -->
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
Creative Commons License
rpm-build 01e673
This work is licensed under a Creative Commons Attribution 2.5 License.
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
  xmlns:dc="http://purl.org/dc/elements/1.1/"
rpm-build 01e673
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
rpm-build 01e673
<Work rdf:about="">
rpm-build 01e673
  <dc:title>leptonica</dc:title>
rpm-build 01e673
  <dc:date>2001</dc:date>
rpm-build 01e673
  <dc:description>An open source C library for efficient image processing and image analysis operations</dc:description>
rpm-build 01e673
  <dc:creator><Agent>
rpm-build 01e673
    <dc:title>Dan S. Bloomberg</dc:title>
rpm-build 01e673
  </Agent></dc:creator>
rpm-build 01e673
  <dc:rights><Agent>
rpm-build 01e673
    <dc:title>Dan S. Bloomberg</dc:title>
rpm-build 01e673
  </Agent></dc:rights>
rpm-build 01e673
  <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
rpm-build 01e673
  <dc:source rdf:resource="www.leptonica.com"/>
rpm-build 01e673
  <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
rpm-build 01e673
</Work>
rpm-build 01e673
rpm-build 01e673
<License rdf:about="http://creativecommons.org/licenses/by/2.5/">
rpm-build 01e673
  <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
rpm-build 01e673
  <permits rdf:resource="http://web.resource.org/cc/Distribution" />
rpm-build 01e673
  <requires rdf:resource="http://web.resource.org/cc/Notice" />
rpm-build 01e673
  <requires rdf:resource="http://web.resource.org/cc/Attribution" />
rpm-build 01e673
  <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
rpm-build 01e673
</License>
rpm-build 01e673
rpm-build 01e673
</rdf:RDF>
rpm-build 01e673
rpm-build 01e673
-->
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
/*====================================================================*
rpm-build 01e673
 -  Copyright (C) 2001 Leptonica.  All rights reserved.
rpm-build 01e673
 -
rpm-build 01e673
 -  Redistribution and use in source and binary forms, with or without
rpm-build 01e673
 -  modification, are permitted provided that the following conditions
rpm-build 01e673
 -  are met:
rpm-build 01e673
 -  1. Redistributions of source code must retain the above copyright
rpm-build 01e673
 -     notice, this list of conditions and the following disclaimer.
rpm-build 01e673
 -  2. Redistributions in binary form must reproduce the above
rpm-build 01e673
 -     copyright notice, this list of conditions and the following
rpm-build 01e673
 -     disclaimer in the documentation and/or other materials
rpm-build 01e673
 -     provided with the distribution.
rpm-build 01e673
 -
rpm-build 01e673
 -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
rpm-build 01e673
 -  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
rpm-build 01e673
 -  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
rpm-build 01e673
 -  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ANY
rpm-build 01e673
 -  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
rpm-build 01e673
 -  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
rpm-build 01e673
 -  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
rpm-build 01e673
 -  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
rpm-build 01e673
 -  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
rpm-build 01e673
 -  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
rpm-build 01e673
 -  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rpm-build 01e673
 *====================================================================*/
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673

Version Notes for Leptonica

rpm-build 01e673

19 Apr 2018

rpm-build 01e673
rpm-build 01e673

rpm-build 01e673

rpm-build 01e673

rpm-build 01e673
rpm-build 01e673

rpm-build 01e673
Note: The following are highlights of the changes in each version.
rpm-build 01e673
They are not a complete listing of the modifications.
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
1.76.0  1 May 18
rpm-build 01e673
        Modify infrastructure to fix outstanding security issues. By default,
rpm-build 01e673
          you can no longer create temp directories and temp files whose
rpm-build 01e673
          names are known to the compiler.  Also, prevent "system" calls,
rpm-build 01e673
          which were used for image display and gnuplot.
rpm-build 01e673
        Replaced remaining sprintf() with snprintf() in prog tests.
rpm-build 01e673
        Added non-transcoding functions for generating pdf from jpeg pixacomp
rpm-build 01e673
        Add control of jpeg quality from pixWriteMem() and pixWriteStream()
rpm-build 01e673
        Fixed getFilenamesInDirectory() to properly identify directories
rpm-build 01e673
        Prevent size overflow in calloc for kernel; cleaned it up fpix and dpix
rpm-build 01e673
        bmp reading now accepts negative height
rpm-build 01e673
        Simplified splitimage2pdf; it no longer uses ps2pdf
rpm-build 01e673
        Remove name-mangling WRITE_AS_NAMED compile option.
rpm-build 01e673
        Removed 2 deprecated write functions.
rpm-build 01e673
        Added these regression tests:
rpm-build 01e673
           locminmax_reg, speckle_reg, watershed_reg,
rpm-build 01e673
rpm-build 01e673
1.75.3  15 Feb 18
rpm-build 01e673
        Fixed some coverity scan issues.
rpm-build 01e673
        Autotools fix to check for png if enabling gnuplot (James Le Cuirot).
rpm-build 01e673
rpm-build 01e673
1.75.2  11 Feb 18
rpm-build 01e673
        Converted several progs to standard regression tests.
rpm-build 01e673
        Added these tests to the alltests_reg suite:
rpm-build 01e673
         adaptnorm_reg, binmorph1_reg, binmorph3_reg, equal_reg,
rpm-build 01e673
         extrema_reg, grayfill_reg, falsecolor_reg, grayquant_reg.
rpm-build 01e673
        Autotools fix for restricting giflib to 5.1+, and allowing
rpm-build 01e673
        openjpeg 2.3 (James Le Cuirot).
rpm-build 01e673
rpm-build 01e673
1.75.1  31 Jan 18
rpm-build 01e673
        Simpler and more accurate function for finding word masks from
rpm-build 01e673
        text image; better debugging and more thorough testing.
rpm-build 01e673
        Added to regression test set: prog/italic_reg
rpm-build 01e673
        Fix for potential injection attack using gplot rootdir.
rpm-build 01e673
        Bug fix for bmp reading to set opacity.
rpm-build 01e673
rpm-build 01e673
1.75.0  24 Jan 18
rpm-build 01e673
        This is a new version, for major Ubuntu release 18.04.
rpm-build 01e673
        $TMPDIR path rewriting turned off on Unix; only used for Windows.
rpm-build 01e673
        Added pix conversion to depth 2 and 4.  We now have general
rpm-build 01e673
          converters to 1, 2, 4, 8, 16 and 32 bpp. 
rpm-build 01e673
        Modified giflib to use read/write from/to memory; no temp files;
rpm-build 01e673
          no longer support versions before 5.1.
rpm-build 01e673
        Move most low-level code from separate files to their callers;
rpm-build 01e673
          about 30 of them became static.
rpm-build 01e673
        Improved table detection on scanned page images (tests: pageseg_reg.c)
rpm-build 01e673
        Added support for write/compare regression tests for files.
rpm-build 01e673
        Modified printimage for more flexibility.
rpm-build 01e673
        Enable lookup by key on comma-separated key/value text file.
rpm-build 01e673
        Update README.html for building with Visual Studio.
rpm-build 01e673
        Improved functions for getting pixel averages in RGB images
rpm-build 01e673
        Simplified and speedup of unsharp masking.
rpm-build 01e673
        New function for detecting and correcting text orientation. 
rpm-build 01e673
        Remove slow sharpening operation when not appropriate during scaling.
rpm-build 01e673
        Better handling of gplots with 0 or 1 data point.
rpm-build 01e673
        Coverity scan fixes.
rpm-build 01e673
        Modified jpeg2000 header to use openjpeg 2.3.
rpm-build 01e673
        Improved depth accessors for pixa and pixaa; added size accessors
rpm-build 01e673
          for pixa and pixaa.
rpm-build 01e673
        Bug fix in webp interface on read error.
rpm-build 01e673
        New function that finds the closest boxes in a boxa to any particular
rpm-build 01e673
          box, in each of 4 directions.
rpm-build 01e673
        New regression tests in automated sequence: blend5_reg, quadtree_reg,
rpm-build 01e673
        wordboxes_reg.
rpm-build 01e673
        New program: textorient
rpm-build 01e673
        Removed programs: snapcolortest
rpm-build 01e673
rpm-build 01e673
1.74.4  11 Jun 17
rpm-build 01e673
        Converted two progs to reg tests
rpm-build 01e673
        New version because 1.74.3 had some spurious files (xtractprotos,
rpm-build 01e673
        endianness.h)
rpm-build 01e673
rpm-build 01e673
1.74.3  9 Jun 17
rpm-build 01e673
        Coverity scan fixes.
rpm-build 01e673
        Several fixes for running on Windows, including subtle one with tiff
rpm-build 01e673
        encoding depending on pad bits.
rpm-build 01e673
        Utility and test if a page image likely has a table.
rpm-build 01e673
        Remove use of pixCreateTemplateNoInit() where it may cause problems.
rpm-build 01e673
        Make release 'configure-make ready'
rpm-build 01e673
rpm-build 01e673
1.74.2  19 May 17
rpm-build 01e673
        Many simplifications and improvements to recognizer.
rpm-build 01e673
        Cleanup of doxygen comments
rpm-build 01e673
        Encoded pdf title in escape 4-byte hex (for safety)
rpm-build 01e673
        Fixed several hundered coverity scan possible leaks
rpm-build 01e673
        Added about 20 regression tests to the automated set.
rpm-build 01e673
        Improved vertical alignment of dewarp.
rpm-build 01e673
        Implemented preliminary method for correcting dewarp foreshortening
rpm-build 01e673
        due to page curvature.
rpm-build 01e673
        Improved multipage tiff reading and writing.
rpm-build 01e673
        Added a new version of textline finding.
rpm-build 01e673
        Fixed bug in fast 2D sharpening code (used in some scaling ops)
rpm-build 01e673
        BMP i/o rewritten to implement memory version directly.
rpm-build 01e673
        PNG i/o functions added for encoding and decoding directly to memory.
rpm-build 01e673
        Method for finding light color regions on scanned page images.
rpm-build 01e673
rpm-build 01e673
1.74.1  3 Jan 17
rpm-build 01e673
        Configuration changes to support the patch number in the
rpm-build 01e673
        version (major.minor.patch).
rpm-build 01e673
        Removed all remaining pixDisplayWrite() calls in prog/.
rpm-build 01e673
        Cleaned up and/or promoted about 15 programs to full regression
rpm-build 01e673
        tests.  There are now 95 tests in the regression set.
rpm-build 01e673
        Over half the initial coverity scan warnings have been removed.
rpm-build 01e673
rpm-build 01e673
1.74.0 10 Dec 16
rpm-build 01e673
       Leptonica development was moved to github.  The master is at:
rpm-build 01e673
          github.com/danbloomberg/leptonica
rpm-build 01e673
       Egor Pugin is the maintainer of the site.
rpm-build 01e673
       A very large number of changes have been made.  Some of them follow;
rpm-build 01e673
       details can be found in the git commit messages.
rpm-build 01e673
       Static makefiles modified to work with gnu*9 and c*9.
rpm-build 01e673
       Modify SET macros to work on windows.
rpm-build 01e673
       New modes for RGB --> gray conversion.
rpm-build 01e673
       New functions added for displaying a pix from a pixa.
rpm-build 01e673
       Split out sort/hash/set/map functions for dna, sarray and pta.
rpm-build 01e673
       More robust horizontal deskew on multi-column page images.
rpm-build 01e673
       Improve webpio_reg test.
rpm-build 01e673
       Remove X11 display for gplot; it is no longer supported.
rpm-build 01e673
       Remove most sleep calls, which were put in for gplot; no longer needed.
rpm-build 01e673
       Removed use of gthumb in library.
rpm-build 01e673
       Removed use of pixDisplayWrite() in the library; still in some progs.
rpm-build 01e673
       Improved test for endianness in makefile.static; no longer requires
rpm-build 01e673
       any local files or building and running a program.
rpm-build 01e673
       Modified all files for doxygen output (spearheaded by Jurgen Buchmuller)
rpm-build 01e673
       Improved plotting of the boxes in a boxa.
rpm-build 01e673
       Replaced the slow point hash function with a simple fast one.
rpm-build 01e673
       Added pam (4 component) format writing to pnmio.c (Jurgen Buchmuller)
rpm-build 01e673
       Improved rendering of pixa in side/by/sides.
rpm-build 01e673
       Better utilities for pixa and pixacomp.
rpm-build 01e673
       Add read/write serialization functions from/to memory for all
rpm-build 01e673
       the major data structures that do not already have them.
rpm-build 01e673
       More serialized boot recognizers stored as self-generating code.
rpm-build 01e673
       Cleaned up generating an adapted recognizer from the boot recognizer.
rpm-build 01e673
       Simplified temp file naming; removed most instances of named
rpm-build 01e673
       temp files from non-debug code; use tmpfile() and a wrapper
rpm-build 01e673
       l_makeTempFilename().
rpm-build 01e673
       Simplify and streamline multipage tiff reading (Jeff Breidenbach).
rpm-build 01e673
       Improvement of Otsu thresholding.
rpm-build 01e673
       Recognize outstanding contributors to leptonica over the years.
rpm-build 01e673
       New gif mem read/write interface that avoids writing a temp file,
rpm-build 01e673
       contributed by Tobias Peirick.
rpm-build 01e673
       Use double arrays (dna) instead of float (numa) for set ops.
rpm-build 01e673
       Enrolled in coverity scan to find potential bugs (Stefan Weil
rpm-build 01e673
       managed it). Fixed about 200 of them, mostly potential memory
rpm-build 01e673
       leaks from early function exit.
rpm-build 01e673
       Cleanup of gray quantization functions and tests.
rpm-build 01e673
       Refactored connectivity-conserving operations, to make them more useful.
rpm-build 01e673
       Provided methods for measuring and regularizing the width of strokes.
rpm-build 01e673
       Removed viewfiles.c from library; code is now in prog htmlviewer.c.
rpm-build 01e673
       Better debugging in page segmentation (pageseg.c)
rpm-build 01e673
       Deprecated the pixDisplayWrite*() debugging methods.
rpm-build 01e673
       Added about 15 regression tests to the framework in alltests_reg.c
rpm-build 01e673
       Final mods for compatibility with tesseract 4.00.
rpm-build 01e673
           
rpm-build 01e673
1.73   25 Jan 16
rpm-build 01e673
       All lept_* functions have been rewritten to avoid path rewrites for
rpm-build 01e673
       output to temp files, which were introduced in 1.72.
rpm-build 01e673
       Now, (1) files are written to the directory specified and (2) we
rpm-build 01e673
       are careful to write to subdirectories of /tmp/lept/ for all test
rpm-build 01e673
       programs, starting with the reg tests and prog/dewarp* and
rpm-build 01e673
       prog/recog*.  This also required re-writing stringcode.c and
rpm-build 01e673
       stringtemplate1.txt to write temp files to subdirectories.
rpm-build 01e673
       Goal is to write to the specified path while not spamming the
rpm-build 01e673
       /tmp and /tmp/lept directories.  This is particularly important
rpm-build 01e673
       on windows because files in the <TEMP> directory are not cleared
rpm-build 01e673
       on reboot.
rpm-build 01e673
       Naming changes (to avoid collisions):
rpm-build 01e673
         #defines MALLOC --> LEPT_MALLOC, CALLOC --> LEPT_CALLOC, etc.
rpm-build 01e673
         ByteBuffer --> L_ByteBuffer
rpm-build 01e673
       Added grayscale histogram functions that can be used to compare images.
rpm-build 01e673
       Added functions to determine if an image region has horizontal
rpm-build 01e673
       text lines.
rpm-build 01e673
       Added functions to compare photo regions of images to determine
rpm-build 01e673
       if they're essentially the same.
rpm-build 01e673
       Added red-black tree utility functions to implement maps and sets.
rpm-build 01e673
       The keys for maps and sets can be 64-bit entities (signed and
rpm-build 01e673
       unsigned integers and doubles).
rpm-build 01e673
       Implemented hashsets and hashmaps, using 64 bit keys.
rpm-build 01e673
       Replaced the numaHash by l_dnaHash; removed numa2d
rpm-build 01e673
       Improved security of tiff and gif reading, to prevent memory corruption
rpm-build 01e673
       when reading bad data.
rpm-build 01e673
       Removed src files: bootnumgen.c
rpm-build 01e673
       Added src files: rbtree.c, rbtree.h, map.c, bootnumgen1.c, bootnumgen2.c
rpm-build 01e673
       Added prog files: rbtreetest.c, maptest.c, settest.c, hashtest.c,
rpm-build 01e673
                         recog_bootnum.c, percolatetest.c
rpm-build 01e673
       Added files for building using cmake (Egor Pugin)
rpm-build 01e673
rpm-build 01e673
1.72   5 Apr 15
rpm-build 01e673
       Better handling of 1 bpp colormap read/write with png so that
rpm-build 01e673
       they are losseless.  The colormap is always removed on read and
rpm-build 01e673
       the conversion is to the simplest non-cmapped pix that can fully
rpm-build 01e673
       represent the input -- both with and without alpha.
rpm-build 01e673
       Fixed overflow bug in pixCorrelationBinary().
rpm-build 01e673
       Fixed orientation flags and handling of 16 bit RGB in tiff.
rpm-build 01e673
       Also new wrappers to TIFFClientOpen(), so we no longer go through
rpm-build 01e673
       the file descriptor for memory operations.
rpm-build 01e673
       Improvements in the dewarp functions.
rpm-build 01e673
       New box sequence smoothings.
rpm-build 01e673
       New antialiased painting through mask; previously it was only
rpm-build 01e673
       implemented for connected components in a mask.
rpm-build 01e673
       Better error handling and debug output with jpeg2000 read/write.
rpm-build 01e673
       Implemented base64 encoding.  This allows binary data to be represented
rpm-build 01e673
       as a C string that can be compiled.  Used this in bmf utility.
rpm-build 01e673
       Implemented automatic code generation for deserialization from
rpm-build 01e673
       compiled strings (stringcode.*)
rpm-build 01e673
       Regression tests write to leptonica subdir of <Temp> in windows; in
rpm-build 01e673
       unix it is optional.  This avoids spamming the <Temp> directory.
rpm-build 01e673
       Added new colorspace conversions (XYZ, LAB).
rpm-build 01e673
       New source files: encoding.c, bmfdata.h, stringcode.c, stringcode.h,
rpm-build 01e673
         bootnumgen.c.
rpm-build 01e673
       Removed source files: convolvelow.c, graymorphlow.c
rpm-build 01e673
       New programs: genfonts_reg, colorize_reg, texturefill_reg,
rpm-build 01e673
         autogentest1, autogentest2.
rpm-build 01e673
       alltests_reg now has 66 tests.
rpm-build 01e673
rpm-build 01e673
1.71   18 Jun 14
rpm-build 01e673
       This version supports tesseract 3.04.  In particular, 3.04
rpm-build 01e673
        has automatic conversion of a set of scanned images, either in a
rpm-build 01e673
        directory or coming directly from a scanner, into pdf with injected
rpm-build 01e673
        text.  This is something we've wanted to do for several years!
rpm-build 01e673
       Improved jp2k header reading, including resolution.
rpm-build 01e673
       Removed src files: rotateorthlow.c, pdfio.c, pdfiostub.c
rpm-build 01e673
       Renamed jp2kio.c, jp2kiostub.c ==> jp2kheader.c, jp2kheaderstub.c.
rpm-build 01e673
        These header reading functions parse the jp2k files, and
rpm-build 01e673
        don't require a jpeg2000 library.
rpm-build 01e673
       New jp2kio.c, jp2kiostub.c, that uses openjpeg-2.X to read
rpm-build 01e673
       and write jp2k.  We now support I/O from these formats:
rpm-build 01e673
         png, tiff, jpeg, bmp, pnm, webp, gif and jp2k
rpm-build 01e673
        as well as writing to PostScript and pdf.
rpm-build 01e673
       New pdfio1.c, pdfio1stub.c, pdfio2.c pdfio2stub.c, where we've
rpm-build 01e673
        split functions into high and low level.
rpm-build 01e673
       Fixed memory bug in bilateral.c
rpm-build 01e673
       Improved reading/write of binary data from file.  For example,
rpm-build 01e673
        l_binaryReadStream() can now be used to capture data piped
rpm-build 01e673
        in via stdin.
rpm-build 01e673
       Font directory now arg passed in everywhere (not hardcoded)
rpm-build 01e673
       Don't write temporary files to /tmp; only to a small number of
rpm-build 01e673
       subdirectories, to avoid spamming the /tmp directory.  E.g.,
rpm-build 01e673
       for regression tests, the current output is now to /tmp/regout/.
rpm-build 01e673
       For jpeg reading modify pixReadJpeg() to take as a hint
rpm-build 01e673
        a bit flag that allows extraction of only the luminance channel.
rpm-build 01e673
       Allow wrapping of pdf objects from png images without transcoding
rpm-build 01e673
        (thanks to Jeff Breidenbach)
rpm-build 01e673
       Better support for alpha on read/write with png, including
rpm-build 01e673
       1 bpp with colormap, alpha (supported in png with transparency array)
rpm-build 01e673
rpm-build 01e673
1.70   3 Feb 14   (distribution to debian; ubuntu 14-04; 4.1.0)
rpm-build 01e673
       New bilateral filtering.
rpm-build 01e673
       New simple character recognition utility.
rpm-build 01e673
       Improved dewarping functionality, in model building and rendering.
rpm-build 01e673
        More flexible use of ref models.
rpm-build 01e673
       Better and more consistent handling of alpha layer in RGBA, though
rpm-build 01e673
        use of the spp field.  Ability to handle more png files with alpha,
rpm-build 01e673
        including palette with alpha.
rpm-build 01e673
       New fast converters from jpeg and jpeg2000 to pdf, without transcoding.
rpm-build 01e673
       Made bmp reader (and pix reading in general) more robust; avoid
rpm-build 01e673
        size overflow errors.
rpm-build 01e673
       New text labelling operations; depth conversion of a set of images
rpm-build 01e673
       New license (essentially BSD 2-clause), to specify conditions
rpm-build 01e673
        for both source and binary distribution.
rpm-build 01e673
       Improved auto make: make all progs, install just 11, test 61.
rpm-build 01e673
       New src files: bilateral.{c,h}, dewarp1.c, dewarp2.c,
rpm-build 01e673
           dewarp3.c, dewarp4.c, jp2kio.c, jp2kiostub.c,
rpm-build 01e673
           pixlabel.c, recogbasic.c, recogdid.c, recogident.c,
rpm-build 01e673
           recogtrain.c, recog.h
rpm-build 01e673
       New prog files: adaptmap_dark.c, alphaxform_ret.c,
rpm-build 01e673
           bilateral_reg.c, binarize_reg.c, binarize_set.c,
rpm-build 01e673
           blackwhite_reg.c, blend1_reg.c, blend3_reg.c, blend4_reg.c,
rpm-build 01e673
           boxa1_reg.c, colorcontent_reg.c, coloring_reg.c,
rpm-build 01e673
           colorspace_reg.c, compare_reg.c, converttopdf.c,
rpm-build 01e673
           croptest.c, dewarprules.c, dewarptest1.c, dewarptest2.c,
rpm-build 01e673
           dewarptest3.c, dewarptest4.c, displayboxa.c, displaypix.c,
rpm-build 01e673
           displaypixa.c, findcorners_reg.c, fpix1_reg.c,
rpm-build 01e673
           fpix2_reg.c, fpixcontours.c, insert_reg.c, italictest.c,
rpm-build 01e673
           jpegio_reg.c, label_reg.c, multitype_reg.c, nearline_reg.c,
rpm-build 01e673
           newspaper_reg.c, numa1_reg.c, numa2_reg.c, recogsort.c,
rpm-build 01e673
           recogtest1.c, shear1_reg.c, webpio_reg.c, wordboxes_reg.c
rpm-build 01e673
       Removed src files: arithlow.c, binexpandlow.c, binreducelow.c,
rpm-build 01e673
           dewarp.c
rpm-build 01e673
       Removed prog files: blend_reg.c, blendtest1.c,
rpm-build 01e673
           dewarptest.c, fpix_reg.c, inserttest.c, numa_reg.c, rotatetest2.c
rpm-build 01e673
           shear_reg, xvdisp.c
rpm-build 01e673
rpm-build 01e673
1.69   16 Jan 12   (distribution to debian; ubuntu 12-04; 3.0.0)
rpm-build 01e673
       Fixed bug in pdf generation for large files, using a new
rpm-build 01e673
        double array (dnabasic.c).  Added several new modes for pdf
rpm-build 01e673
        generation from sets of images.
rpm-build 01e673
       Dewarp based on image content now aligns to left and right margins;
rpm-build 01e673
        works at book level; is more robust to bad disparity models;
rpm-build 01e673
        version 2 serialization.
rpm-build 01e673
       Fixed regutils to return the actual number of errors.
rpm-build 01e673
       Improved sorting efficiency of numas in cases where binning,
rpm-build 01e673
        which is order N, makes sense.
rpm-build 01e673
       Fixed fpix serialization (now version 2).
rpm-build 01e673
       New version (5) of xtractprotos, allows putting prototypes in-line in
rpm-build 01e673
        allheaders.h.  Having them separately in leptprotos.h still an option
rpm-build 01e673
       New copyright (BDS, 2 clause) on src files.
rpm-build 01e673
       Removed all trailing whitespace in src files.
rpm-build 01e673
       New src files: boxfunc4.c coloring.c, dnabasic.c
rpm-build 01e673
       New prog files: dna_reg.c, alphaops_reg.c
rpm-build 01e673
       Removed prog file: alphaclean_reg.c
rpm-build 01e673
rpm-build 01e673
1.68   10 Mar 11
rpm-build 01e673
       Fixed windows issues with passing pointers across C-runtime boundaries
rpm-build 01e673
       when using dlls, by providing special functions (e.g., lept_fopen()).
rpm-build 01e673
       Proper version numbers are now set with automake.
rpm-build 01e673
       New utility (quadtree.c) for generating quadtree statistics.
rpm-build 01e673
       New utility (in colorspace.c) for conversions to and from YUV.
rpm-build 01e673
       Refactored functions for assembling image data for generating
rpm-build 01e673
       either PS or PDF images using g4, jpeg or flate encoding.
rpm-build 01e673
       Better tempfile names, using current time in microseconds.
rpm-build 01e673
       Functions for getting resolution from jpeg and png files.
rpm-build 01e673
       Use size_t throughout for reading and writing binary data.
rpm-build 01e673
       Deprecate arrayRead*() and arrayWrite() functions; replace in
rpm-build 01e673
       the library with l_binaryRead*() and l_binaryWrite().
rpm-build 01e673
       Better handling of colormap images for in-place rasterop and shear.
rpm-build 01e673
       New utility (bytearray.c) for parsing and handling binary data;
rpm-build 01e673
       used for generating PDF files.
rpm-build 01e673
       New utility (pdfio.c) for generating PDF files.
rpm-build 01e673
       Refactored regutils functions to make them simpler to use.
rpm-build 01e673
       Top-level deskew now works on any image.
rpm-build 01e673
       Added functions in utils.c for cross-platform development, mostly
rpm-build 01e673
       for functions that make and remove directories, copy, move
rpm-build 01e673
       and delete files, etc.  It should now be straightforward to write
rpm-build 01e673
       programs that will compile and run on windows.
rpm-build 01e673
       Reg tests have better printout; all give timings.
rpm-build 01e673
       New utility program: convertfilestopdf
rpm-build 01e673
rpm-build 01e673
1.67   9 Nov 10
rpm-build 01e673
       Autoconf: now built with James Cuirot's config files that
rpm-build 01e673
         build the library and all 200 progs.
rpm-build 01e673
       New sudoku solver.  Just a game, but there are interesting aspects.
rpm-build 01e673
       Modified parseprotos.c to reject a type of "extern" decl.
rpm-build 01e673
       Add faster implementation for very small gray morphology
rpm-build 01e673
         operations (3x1, 1x3, 3x3).
rpm-build 01e673
       Eliminate warnings on recent gcc if you don't check return values
rpm-build 01e673
         from fread, fscanf, fgets, system, etc.
rpm-build 01e673
       Convolution: new functions for windowed variance and stdev; allow
rpm-build 01e673
         non-square kernel for windowed mean square.
rpm-build 01e673
       Put stdio.h and stdlib.h in alltypes.h, so they're not required
rpm-build 01e673
         in any .c files.
rpm-build 01e673
       Replace numaConvolve(), which is just a windowed mean, by
rpm-build 01e673
         windowed statistics functions (mean, mean square, variance).
rpm-build 01e673
       Generalize pixExtractOnLine() for arbitrary lines.
rpm-build 01e673
       Add pix interface to webp (webpio.c, webpiostub.c).  This is a
rpm-build 01e673
         new open source codec, based on the video codec vpx (webm).
rpm-build 01e673
       Serialization of FPix and DPix
rpm-build 01e673
       Interconversion between FPix and DPix
rpm-build 01e673
       Integer scaling of FPix and DPix; includes the last row and column.
rpm-build 01e673
       New convertfiles.c: depth conversion on files in a directory.
rpm-build 01e673
       Testing programs in prog:
rpm-build 01e673
           convolve_reg.c, numa_reg.c: expanded test set
rpm-build 01e673
           projection_reg.c (tests pixRowStats(), pixColumnStats())
rpm-build 01e673
           dewarptest.c: output ps and pdf files
rpm-build 01e673
           writemtiff.c: simple driver to write images to a single file
rpm-build 01e673
rpm-build 01e673
1.66   3 Aug 10
rpm-build 01e673
       More tweaks for including (or not) bounding box hints for
rpm-build 01e673
         PS wrapping.  Default is to write b.b., but not in functions
rpm-build 01e673
         that wrap images as full pages (psio1.c, psio2.c)
rpm-build 01e673
       pix4.c split in two files, and added function to identify c.c.
rpm-build 01e673
         that are sufficiently similar in shape to rectangles (pix5.c)
rpm-build 01e673
       Modify 2 and 4 bit setters to clip the input value so that it can
rpm-build 01e673
         only affect the pixel requested (arrayaccess.c, arrayaccess,h)
rpm-build 01e673
       New pseudorandom sequence functions (numafunc1.c)
rpm-build 01e673
       Dewarping camera-based images using textlines (dewarp.c, prog/dewarp*)
rpm-build 01e673
       Geometrical function for aggregating overlapping bounding boxes.
rpm-build 01e673
       Programs to generate figures for book chapter "Document Image
rpm-build 01e673
         Applications" in "Mathematical Morphology: theory and applications"
rpm-build 01e673
         (see: http:/www.leptonica.org/najman-talbot-book-chapter.html)
rpm-build 01e673
         (prog/livre*.c)
rpm-build 01e673
       Functions that do affine and other operations in images with
rpm-build 01e673
         alpha blending at edges: pix*WithAlpha().  Also do this
rpm-build 01e673
         with a gamma/inverse-gamma wrapper to further reduce edge aliasing.
rpm-build 01e673
          (rotate.c, scale.c, projective.c, affine.c, bilinear.c,
rpm-build 01e673
           prog/alphaxform_reg.c)
rpm-build 01e673
       Improved color segmentation (fixed bugs; made faster)
rpm-build 01e673
       Higher order least square fits: quadratic, cubic, quartic. (pts.c)
rpm-build 01e673
       Various mods for otsu binarization and the *SplitDistribution*()
rpm-build 01e673
         functions (numafunc2.c, prog/otsutest2.c)
rpm-build 01e673
       Control sampling in convolution output (convolve.c, prog/fpix_reg.c)
rpm-build 01e673
       Morphological operations on numas (numafunc1.c, numafunc2.c,
rpm-build 01e673
         prog/numa_reg.c)
rpm-build 01e673
       Pix serialization wrapped so we can use pixRead(), etc on these
rpm-build 01e673
         files (spixio.c, readfile.c, writefile.c)
rpm-build 01e673
       Gif read/write to memory fixed (and cheated -- using files) (gifio.c)
rpm-build 01e673
       New fpix and dpix accessors; contour rendering on fpix (fpix1.c, fpix2.c)
rpm-build 01e673
       Various functions for linearly mapping colors and displaying arrays
rpm-build 01e673
         of colors (pix4.c, blend.c, prog/rankhisto_reg.c)
rpm-build 01e673
       Functions for getting approximate ranges of colors and color
rpm-build 01e673
         components in an image (pix4.c, colormap.c)
rpm-build 01e673
       Cleaned up windows platform and compiler defines and macros.
rpm-build 01e673
rpm-build 01e673
1.65   5 Apr 10
rpm-build 01e673
       Added regression test utility functions for standardizing and
rpm-build 01e673
         automating construction and running of regression tests.  Makes the
rpm-build 01e673
         golden files when the 2nd arg to the reg test is 'generate'.
rpm-build 01e673
         (regutils.{c,h})
rpm-build 01e673
         Converted 22 reg tests in prog to use this; invoked with alltests_reg.
rpm-build 01e673
         Goal is to put all prog/*_reg.c into this format and put a set
rpm-build 01e673
         of golden files on the web.
rpm-build 01e673
       Small fixes in gifio for handling streams properly.
rpm-build 01e673
       New functions for shifting colors, hue invariant transforms, etc
rpm-build 01e673
         (blend.c)
rpm-build 01e673
       prog/dwamorph*.c: rename *1_reg.c to dwalineargen.c; others
rpm-build 01e673
         converted to standard reg tests.
rpm-build 01e673
       New rgb convolution functions.
rpm-build 01e673
       For PS output, write all images with a bounding box hint and with
rpm-build 01e673
         page numbers, which works for both embedded (e.g., in tex) and
rpm-build 01e673
         full page generated PS.  Once converted to pdf, this is fine
rpm-build 01e673
         in all situation.
rpm-build 01e673
       New functions for initialization and random insertion with pixcomp.
rpm-build 01e673
       For color quantization, make the lightest color white if sufficiently
rpm-build 01e673
         close; ditto for black (colorquant1.c, colorquant2.c).
rpm-build 01e673
       Rank binning of 8 bpp and rgb images (numafunc2.c, pix4.c)
rpm-build 01e673
       A function to rank colors by the intensity of the minimum comp (pix4.c)
rpm-build 01e673
       New pixRotateBinaryNice(), rotates 1 bpp pix in such a way that
rpm-build 01e673
         the shear lines aren't visible. (rotate.c)
rpm-build 01e673
       New pixSaveTiledWithText(), a convenience function to append text
rpm-build 01e673
         to images that are being tiled. (writefile.c)
rpm-build 01e673
       Stereoscopic warping functions and stereo pair functions (warper.c)
rpm-build 01e673
       Linear interpolated shear -- better than rasterop shear (shear.c)
rpm-build 01e673
       Option to use higher quality chroma (U,V) sampling in jpeg (jpegio.c)
rpm-build 01e673
       Rename Bmf --> L_Bmf.
rpm-build 01e673
       New tests in prog:
rpm-build 01e673
         alltests_reg.c alphaclean_reg.c, psio_reg.c, rankbin_reg.c,
rpm-build 01e673
         rankhisto_reg.c, warpertest.c
rpm-build 01e673
rpm-build 01e673
1.64   3 Jan 10
rpm-build 01e673
       Easy setup for standard byte processing on 8 bpp pix (pix2.c)
rpm-build 01e673
       Evaluation of difference between similar images; test for
rpm-build 01e673
       similar images and (compare.c)
rpm-build 01e673
       Subpixel scaling, with color input and separate scale factors (pixconv.c)
rpm-build 01e673
       Fix tiff header reader to get correct format (tiffio.c)
rpm-build 01e673
       Enable pixDisplay() to work with i_view (windows) and with
rpm-build 01e673
         xzgv and xli as well as xv; allow application to choose
rpm-build 01e673
         which to use (writefile.c).
rpm-build 01e673
       Use a mask to specify regions that are changed by a morphological
rpm-build 01e673
         operation (morphapp.c).
rpm-build 01e673
       Improve the default sharpening for scaling (scale.c)
rpm-build 01e673
       Function to test for equivalence of file data (utils.c)
rpm-build 01e673
       Select and read image files with embedded index (readfile.c)
rpm-build 01e673
       Fix box size calculation in pixEmbedForRotation(); solution
rpm-build 01e673
         provided by Brent Sundheimer.
rpm-build 01e673
       New pixDisplayMultiple(), instead of calling gthumb directly; this
rpm-build 01e673
         is now set up to use i_view for windows.
rpm-build 01e673
       Changed criteria for determining if an image is color (colorcontent.c,
rpm-build 01e673
         colorquant{1,2}.c.
rpm-build 01e673
       Optional mode where the filename extension is automatically written
rpm-build 01e673
         to output image files; particularly useful for windows.
rpm-build 01e673
       Initialize boxa and pixa as full, with minimal placeholders.
rpm-build 01e673
       Get rank valued numbers and boxes in numa and boxa.
rpm-build 01e673
       Cute implementation for finding largest solid rectangle (maze.c)
rpm-build 01e673
       New median cut quantization for mixed (color/gray) images (colorquant2.c)
rpm-build 01e673
       Many changes to allow the library and applications be built easily
rpm-build 01e673
         in windows.  There is now a thorough windows readme, written by Tom
rpm-build 01e673
         Powers, for doing this.  The windows build information and
rpm-build 01e673
         project files are now in a new vs2008 directory.
rpm-build 01e673
rpm-build 01e673
1.63   8 Nov 09
rpm-build 01e673
       Added pixScaleToGrayFast(), a faster version with very similar quality.
rpm-build 01e673
       Fixed scaleGrayLILow() to handle edge pixels more accurately
rpm-build 01e673
       Text processing:
rpm-build 01e673
         new text application (finditalic.c, prog/finditalic.c) for locating
rpm-build 01e673
           words in italic type style.
rpm-build 01e673
         Easier to add text to a pix using the bitmap font stored in
rpm-build 01e673
           the font directory; see, e.g., prog/writetxt_reg.c.
rpm-build 01e673
       Blending of 2 images with an alpha channel: pixBlendWithGrayMask()
rpm-build 01e673
       Fixed bug in color segmentation; it now (again) works properly.
rpm-build 01e673
       New utility (pixcomp.c) for handling compressed pix arrays in
rpm-build 01e673
          memory; new PixComp and PixaComp structs.
rpm-build 01e673
       Fast serialization of pix without compressing (pixSerializeToMemory
rpm-build 01e673
          and pixDeserializeFromMemory); required serialized colormaps
rpm-build 01e673
       FileI/O: new functions for reading file headers.
rpm-build 01e673
          PostScript generation modernized; split psio.c into psio1.c
rpm-build 01e673
            and psio2.c; added level 3 (flate) encoding.
rpm-build 01e673
          new functions for reading and writing multipage tiffs, for
rpm-build 01e673
            arbitrary input images.  For writing, compression is lossless
rpm-build 01e673
            (either g4 or zip)
rpm-build 01e673
          update all I/O stub files
rpm-build 01e673
       Miscellaneous: new pixaAddBorderGeneral(); new functions in pix3.c
rpm-build 01e673
          for counting fg pixels and summing 8 bpp pixels by column and row;
rpm-build 01e673
          new numaUniformSampling() for resampling with interpolation;
rpm-build 01e673
          subpixel scaling.
rpm-build 01e673
       New or improved regression tests in prog:
rpm-build 01e673
          extrema_reg, pixalloc_reg, blend2_reg, rotateorth_reg,
rpm-build 01e673
          ioformats_reg, colorseg_reg, pixcomp_reg, pixserial_reg,
rpm-build 01e673
          writetext_reg, psioseg_reg, subpixel_reg.
rpm-build 01e673
       Interface changes:
rpm-build 01e673
         findFileFormat() and findFileFormatBuffer(): now returns format
rpm-build 01e673
             using input ptr.  The function return value is 0 if OK; 1 on error
rpm-build 01e673
         rename: pixThresholdPixels() --> pixThresholdPixelSum()
rpm-build 01e673
rpm-build 01e673
1.62   26 Jul 09
rpm-build 01e673
       Expanded composite Dwa implementation as a sequence of operations,
rpm-build 01e673
       so that it now works beyond a size of 63.  It's typically about 2x
rpm-build 01e673
       faster than the composite rasterop implementation (with help
rpm-build 01e673
       from Ankur Jain).  Also use data transfer instead of data copy
rpm-build 01e673
       whenever possible.  Thorough tests with binmorph4_reg and binmorph5_reg.
rpm-build 01e673
       New functions in colorseg.c for masking and histogramming in HSV
rpm-build 01e673
       color space.
rpm-build 01e673
       Treat string constants rigorously as const char*, initializing
rpm-build 01e673
       to char[] if to be used as non-const, or in some cases casting
rpm-build 01e673
       to char*.  This avoids compiler warnings.
rpm-build 01e673
       Improved color quantization using existing colormap for octcubes
rpm-build 01e673
       and a new version for grayscale.  This will rigorously map most
rpm-build 01e673
       black and most white octcubes (rsp) to black and white
rpm-build 01e673
       if they exist in the colormap.
rpm-build 01e673
       Fast quantization to an existing colormap for color and grayscale.
rpm-build 01e673
       Fixed some bugs; e.g., in pixAffineSampled() for 1 bpp with
rpm-build 01e673
       L_BRING_IN_BLACK; reading and writing pnm for 2 and 4 bpp.
rpm-build 01e673
       In pngio.c, enable compile time control over these settings:
rpm-build 01e673
         converting 16 bpp --> 8 bpp on read
rpm-build 01e673
         removing alpha channel on read
rpm-build 01e673
         setting zlib compression on write
rpm-build 01e673
       For general scaling, allow sharpening to be optional, and provided
rpm-build 01e673
       faster sharpening operations.
rpm-build 01e673
       Improve support for 16 bpp grayscale.
rpm-build 01e673
       For scaleToGray* functions, reduce the width truncation.
rpm-build 01e673
       In psio.c, new functions for converting segmented page images
rpm-build 01e673
       (text and image) into level 2 PostScript.
rpm-build 01e673
       Removed all implicit casting to const char*.
rpm-build 01e673
       New custom pix memory allocator, designed for large pix whose
rpm-build 01e673
       memory needs to be reused many times.
rpm-build 01e673
       In xtractprotos, we now allow prepending an arbitrary string to
rpm-build 01e673
       each prototype.
rpm-build 01e673
       In environ.h, additions for MSVC to work with VC++6, including
rpm-build 01e673
       prototpye strings for dll import and export (thanks to Ray Smith).
rpm-build 01e673
       In colorseg.c, new functions for building HSV histograms, finding 
rpm-build 01e673
       peaks, and generating masks based on the peaks.
rpm-build 01e673
       New or improved regression tests:
rpm-build 01e673
         pixalloc_reg, binmorph4_reg, binmorph5_reg, conversion_reg,
rpm-build 01e673
         scale_reg, cmapquant_reg, 
rpm-build 01e673
rpm-build 01e673
1.61   26 Apr 09
rpm-build 01e673
       New histo-based grayscale quantization: pixGrayQuantizeFromHisto(),
rpm-build 01e673
       that is used in new pixQuanitzeIfFewColorsMixed().
rpm-build 01e673
       Made final fix in pixBlockconv().  No underflows; no more overflows!
rpm-build 01e673
       More efficient rgb write with pnm.
rpm-build 01e673
       Add proto to jpegiostub.c, allowing proper use of the stubber.
rpm-build 01e673
       Fix several filter functions to use proper test on filter size; viz.,
rpm-build 01e673
         pixMinMaxTiles(), several functions in convolve.c.
rpm-build 01e673
       Redo shear implementation to handle arbitrary angles, to handle
rpm-build 01e673
         colormapped images, and to avoid the singularity at pi/2.
rpm-build 01e673
       Removed both static vars from pixSaveTiled().
rpm-build 01e673
       Generalized pixRotate() to handle colormapped images, and to use
rpm-build 01e673
         pixRotateBySampling() in place of the removed pixRotateEuclidean().
rpm-build 01e673
       New skew finder for full angle range, pixFindSkewOrthogonalRange().
rpm-build 01e673
       For skew detection, now allow shear about image center as well as
rpm-build 01e673
         about the UL corner.
rpm-build 01e673
       New rotation reg tests: rotate1_reg.c and rotate2_reg.c.
rpm-build 01e673
       Better serialization format for boxaa; introduce new version numbers
rpm-build 01e673
         for boxaa, pixa, and boxa, as required.
rpm-build 01e673
       Proper init in boxGetGeometry(), boxaGetBoxGeometry(), and the
rpm-build 01e673
         accessors in sel1.c and kernel.c.
rpm-build 01e673
       Improved Numa functions in numafunc1.c and numafunc2.c; in
rpm-build 01e673
         particular, numaMakeHistogramAuto() and numaGetStatsUsingHistogram().
rpm-build 01e673
         With all histo generators, make sure the start and binsize params
rpm-build 01e673
         are properly set and are used.
rpm-build 01e673
         Interface change: Use these parameters implicitly in
rpm-build 01e673
         numaHistogramGetRankFromVal() and numaHistogramGetValFromRank().
rpm-build 01e673
       Interface change to ptaGetLinearLSF(): add 1 optional parameter.
rpm-build 01e673
       In several pixaDisplay*() functions, handle colormaps properly.
rpm-build 01e673
       pixafunc.c split to pixafunc1.c and pixafunc2.c.
rpm-build 01e673
         New connected component selections and options in pixaSort.
rpm-build 01e673
       Patch from Tony Dovgal for reading tiff rgba files.
rpm-build 01e673
       Added new logical operation options for numas.
rpm-build 01e673
       New pixConvertRGBToGrayMinMax() that chooses min or max of 3 components.
rpm-build 01e673
       Computation of pixelwise aligned stats between multiple images
rpm-build 01e673
         of the same size (e.g., video), in pix4.c.
rpm-build 01e673
       Very fast binsort implemented for boxa and pixa.
rpm-build 01e673
       Cleanup and rename stack, queue, heap and ptra functions:
rpm-build 01e673
         all structs and typedefs start with "L_"
rpm-build 01e673
         all functions start with "l"
rpm-build 01e673
       Sel creation for crosses and T junctions.
rpm-build 01e673
       New thresholding operations to binary; split out from adaptmap.c
rpm-build 01e673
         into binarize.c.
rpm-build 01e673
       Implementation of sauvola binarization, including use of pixtiling.
rpm-build 01e673
       Added composite parallel union and intersection morphological operations.
rpm-build 01e673
       Small changes to scaling and rotation to improve accuracy; only
rpm-build 01e673
         visible on very tiny, symmetric images.
rpm-build 01e673
       Implemented DPix (double precision data); useful for the mean
rpm-build 01e673
         square accumulator for sauvola binarization.
rpm-build 01e673
       New fast hybrid grayscale seedfill, in addition to the interative
rpm-build 01e673
         version (contributed by Ankur Jain).
rpm-build 01e673
       New or improved regression tests:
rpm-build 01e673
         rotate1_reg, rotate2_reg, shear_reg, numa_reg, skew_reg,
rpm-build 01e673
         ptra1_reg, ptra2_reg, paint_reg, smallpix_reg, pta_reg,
rpm-build 01e673
         pixmem_reg, binarize_reg, grayfill_reg.
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
1.60   19 Jan 09
rpm-build 01e673
       Fixed bug in pixBlockconv(), introduced in 1.59, that causes
rpm-build 01e673
       overflow when convolving with an image that has white (255)
rpm-build 01e673
       at the edges.  [quickly found by Dave Bryan]
rpm-build 01e673
       Include function to display freetype fonts in a pix.
rpm-build 01e673
       The files freetype.c and freetype.h are in the distribution, but are not
rpm-build 01e673
       yet linked into the library.  This is contributed by Tony Dovgal,
rpm-build 01e673
       and this version works only for MSVC.
rpm-build 01e673
       Found that the problems with binary compression in giflib are fixed
rpm-build 01e673
       with giflib 4.1.6.
rpm-build 01e673
rpm-build 01e673
1.59   11 Jan 09
rpm-build 01e673
       Lots of changes since 1.58.
rpm-build 01e673
       New files: affinecompose.c, ptra.c, warper.c, watershed.{h,c}.
rpm-build 01e673
          Split: boxfunc.c --> (boxfunc1.c, boxfunc2.c, boxfunc3.c)
rpm-build 01e673
       Improved connected component filtering, with logical functions
rpm-build 01e673
       applied to indicator arrays (pix4.c, pixafunc.c, numafunc1.c).
rpm-build 01e673
       Function to determine if an image can be quantized nicely with
rpm-build 01e673
       only a few colors (colorcontent.c, pixconv.c).
rpm-build 01e673
       New gray seed-filling functions (seedfill.c, seedfilllow.c).
rpm-build 01e673
       Fixed bugs in tophats and hdome, due to misuse of pixSubtractGray()
rpm-build 01e673
       (morphapp.c).
rpm-build 01e673
       New function for improving contrast (adaptmap.c)
rpm-build 01e673
       Watershed transform (still slightly buggy) (watershed.c,h).
rpm-build 01e673
       Fast random access into a pix using line pointers (pix1.c, arrayaccess.*)
rpm-build 01e673
       Conversions of colormaps from gray to color and v.v. (colormap.c)
rpm-build 01e673
       Seedfill function that applies an upper limit to the fill
rpm-build 01e673
       distance (seedfill.c)
rpm-build 01e673
       New function for warping images with random harmonic distortion
rpm-build 01e673
       (with help from Tony Dovgal).
rpm-build 01e673
       New generic ptr array utility: all O(1) functions of a stack plus
rpm-build 01e673
       random replace, insert and delete (ptra.c).
rpm-build 01e673
       Simple functions for colorizing a grayscale image with an arbitrary
rpm-build 01e673
       color (pixconv.c, colormap.c)
rpm-build 01e673
       Flexible affine transforms (translation, scale, rotation) on pta
rpm-build 01e673
       and boxa (affinecompose.c).
rpm-build 01e673
       Clipping of foreground (both exact and approximate) starting from
rpm-build 01e673
       within a rectangular region of the image (pix4.c)
rpm-build 01e673
       Blending a colored rectangle over an image (pix2.c, boxfunc3.c)
rpm-build 01e673
       Generation of rectangle covering of mask components (boxfunc3.c).
rpm-build 01e673
       Block convolution using tiles (for very large images)  (convolve.c)
rpm-build 01e673
       New or improved regression tests in prog:
rpm-build 01e673
          locminmax_reg, lowaccess_reg, grayfill_reg, adaptnorm_reg,
rpm-build 01e673
          xformbox_reg, warper_reg, cmapquant_reg, compfilter_reg,
rpm-build 01e673
          splitcomp_reg, affine_reg, bilinear_reg, projective_reg
rpm-build 01e673
       Acknowledgments:
rpm-build 01e673
       (1) Big thanks to Tony Dovgal for helping with the warping
rpm-build 01e673
           (e.g. for captcha).  Tony also provided an implementation that
rpm-build 01e673
           allows rendering truetype fonts into a Pix on windows.
rpm-build 01e673
           This is not yet incorporated, because it opens a huge
rpm-build 01e673
           "can of worms," which is OK if you're going fishing but
rpm-build 01e673
           maybe not if you're trying to support leptonica on many platforms.
rpm-build 01e673
           TBD.
rpm-build 01e673
       (2) David Shao provided a libtools build system that includes
rpm-build 01e673
           building the prog directory!  I believe this will work, but it
rpm-build 01e673
           is is not yet included because of problems I continue to have
rpm-build 01e673
           with macros in version 2.61 of gnu libtools.
rpm-build 01e673
       (3) Steve Rogers is working on a MSVC build for the prog directory.
rpm-build 01e673
           I hope to have this available for 1.60.
rpm-build 01e673
rpm-build 01e673
1.58   27 Sept 08
rpm-build 01e673
       Added serialization for numaa.
rpm-build 01e673
       New octree quantizer pixOctreeQuantByPopulation(), that uses a
rpm-build 01e673
       mixture of level2 and level4 octcubes.  Renamed many functions
rpm-build 01e673
       in colorquant1.c, and arranged/documented them more carefully.
rpm-build 01e673
       Revised documentation in leptonica.org/papers/colorquant.pdf.
rpm-build 01e673
       Simplified customization for I/O libraries and fmemopen() in environ.h.
rpm-build 01e673
       Fixed bugs in colormap.c, viewfiles.c, pixarith.c.
rpm-build 01e673
       Verified Adam Langley's jbig2enc (encoding jbig2 and generating pdf from
rpm-build 01e673
       these encoded files) works properly with the current version -- see
rpm-build 01e673
       Section 24 of README.html for usage and build hints.
rpm-build 01e673
       New separable convolution; let pixConvolve() take 8, 16 and 32 bpp input.
rpm-build 01e673
       New floating pt pix (FPix) utility, which allows convolution and
rpm-build 01e673
       arithmetic operations on FPix; also interconversion to Pix.
rpm-build 01e673
       Ability to read headers on multipage tiff.
rpm-build 01e673
       More robust updown text detection in flipdetect.c.
rpm-build 01e673
       Use of sharpening to improve scaling when the scale factor is near 1.0.
rpm-build 01e673
       See prog/fpix_reg.c for regression test and usage.
rpm-build 01e673
       See prog/blend_reg.c for blending regression test, with new functions.
rpm-build 01e673
rpm-build 01e673
1.57   13 Jul 08
rpm-build 01e673
       New Debian distribution for 1.57 (thanks to Jeff Breidenbach).
rpm-build 01e673
       Improved the Otsu-type approach for finding a binarization threshold,
rpm-build 01e673
       by choosing the min in the histogram subject to constraints
rpm-build 01e673
       (numafunc2.c, adaptmap.c)
rpm-build 01e673
       New function pixSeedspread() in seedfill.c, similar to a voronoi tiling,
rpm-build 01e673
       that is used for adaptive thresholding in pixThresholdSpreadNorm().
rpm-build 01e673
       In the process, fixed a small bug in pixDistanceFunction().
rpm-build 01e673
       (The approach was suggested by Ray Smith, and uses the fast
rpm-build 01e673
       Vincent distance function method to expand each seed.)
rpm-build 01e673
       Generalized the functions in kernel.c to use float weights
rpm-build 01e673
       for general convolution (Version 2 for kernel), and added
rpm-build 01e673
       gaussian kernel generation.
rpm-build 01e673
       Put all jpeg header functions into jpegio.c, where they belong.
rpm-build 01e673
       Fixed bugs in pixaInsertPix() and pixaRemovePix().
rpm-build 01e673
       Added read/write serialization for Numaa.
rpm-build 01e673
       New functions for comparing two images using bounding boxes (classapp.c).
rpm-build 01e673
rpm-build 01e673
1.56   12 May 08
rpm-build 01e673
       Added several new 1d barcode decoders.  The functional interface
rpm-build 01e673
       is still in flux.
rpm-build 01e673
       Autoconf!   To get this working, it was necessary to: determine and
rpm-build 01e673
       set the endian flag; select which libraries are to be linked;
rpm-build 01e673
       determine if stream-based memory I/O is enabled.
rpm-build 01e673
       This required a major cleanup of the include files, minimizing
rpm-build 01e673
       dependencies on external library header files, and getting everything
rpm-build 01e673
       to work with both autoconf (HAVE_CONFIG_H) and the old
rpm-build 01e673
       customized makefile.  Customization is now all in environ.h.
rpm-build 01e673
       pixSaveTiled(): a new way to display tiled images.
rpm-build 01e673
       pixtiling.c: interface for splitting an image into a set of
rpm-build 01e673
       overlapping tiles, using mirrored borders for tiles touching the
rpm-build 01e673
       image boundary.
rpm-build 01e673
       pixBlendHardLight(): new blending mode with nice visual effects.
rpm-build 01e673
       pixColorFraction(): determines extent of color in image
rpm-build 01e673
       Both octree and median-cut color quantization check first if
rpm-build 01e673
       image is essentially grayscale; improvements to both algorithms.
rpm-build 01e673
       box*TransformOrdered(): general sequence of linear transforms.
rpm-build 01e673
       colorquant_reg.c, xformbox_reg.c, hardlight_reg.c: new regr tests.
rpm-build 01e673
rpm-build 01e673
1.55   16 Mar 08
rpm-build 01e673
       New functions for combining two images arbitrarily through a mask,
rpm-build 01e673
       including mirrored tiling (pix3.c)
rpm-build 01e673
       Modify pixSetMasked*() to work on all images (pix3.c)
rpm-build 01e673
       New functions for extracting masked regions such as pixClipMasked()
rpm-build 01e673
       (pix3.c) and pixMaskConnComp() and pixMaskBoxa() (boxfunc.c).
rpm-build 01e673
       New functions to separate fg from bg (pix3.c), one of which is supported
rpm-build 01e673
       by numaSplitDistribution (numafunc.c).
rpm-build 01e673
       Modify sobel edge detector to take another parameter (edge.c)
rpm-build 01e673
       Support for 4 bpp cmyk color space in jpeg (jpegio.c)
rpm-build 01e673
       Modified median cut color quantization (colorquant2.c)
rpm-build 01e673
       Renamed colorquant.c (for octree quant) --> colorquant1.c.
rpm-build 01e673
       Absorbed conncomp.h and colorquant.h into specific files that
rpm-build 01e673
       depend on them (colorquant1.c, conncomp.c, pix.h)
rpm-build 01e673
       General convolution with utility for building kernels
rpm-build 01e673
       (convolve.c, kernel.c)
rpm-build 01e673
       Initial implementation of 1D barcode reader.  So far, we just have the
rpm-build 01e673
       signal processing to locate barcodes on a page, deskew them, and
rpm-build 01e673
       find the bar widths, along with decoders for two formats.
rpm-build 01e673
       (readbarcode.*, prog/barcodetest.c)
rpm-build 01e673
       Made the default to stub out read/write for non-tiff image formats
rpm-build 01e673
       to memory; it doesn't work on Macs & they were complaining (*io.c)
rpm-build 01e673
       Include MSVC project files for building leptonlib under
rpm-build 01e673
       windows (leptonlib.*)
rpm-build 01e673
rpm-build 01e673
1.54   21 Jan 08
rpm-build 01e673
       Histogram equalization (enhance.c).
rpm-build 01e673
       New functions for pixaa: serialization (r/w), creation
rpm-build 01e673
       from pixa, and a tiled/scaled display into a pixa (pixabasic.c,
rpm-build 01e673
       pixafunc.c).
rpm-build 01e673
       Read/write of tiff to memory (instead of a file, using
rpm-build 01e673
       the TIFFClientOpen() callback interface), contributed by Adam
rpm-build 01e673
       Langley (tiffio.c, testing in prog/ioformats_reg).
rpm-build 01e673
       Improved image statistics functions, both over tiles and
rpm-build 01e673
       through a mask over the entire image.  Added standard deviation
rpm-build 01e673
       and variance; enable statistics for rgb and colormapped images,
rpm-build 01e673
       in addition to 8 bpp grayscale (pix3.c).  New function to
rpm-build 01e673
       extract rgb components from a colormapped image (pix2.c).
rpm-build 01e673
       Fix pixWriteStringPS() to work with all depths and colormap (psio.c)
rpm-build 01e673
       Enable all non-tiff formats to also write and read to/from memory (*io.c)
rpm-build 01e673
       Added support for read/write to gif, contributed by Tony Dovgal
rpm-build 01e673
       (gifio.c, gifiostub.c, imageio.h).  See Makefile for instructions
rpm-build 01e673
       on enabling this.
rpm-build 01e673
rpm-build 01e673
1.53   29 Dec 07
rpm-build 01e673
       Add 4th arg to pixDistanceFunction() to specify b.c.,
rpm-build 01e673
       and fixed output to 16 bpp grayscale pix. (seedfill*.c)
rpm-build 01e673
       New un-normalized block grayscale convolution (convolve.c)
rpm-build 01e673
       Fixed bug in getLogBase2(), so that pixMaxDynamicRange() works
rpm-build 01e673
       properly.  This is useful for displaying a 16 bpp pix as
rpm-build 01e673
       8 bpp (pixarith.c).  New function for getting rank val for
rpm-build 01e673
       rgb over a region specified by a mask (pix3.c).  New function
rpm-build 01e673
       for extremem values of rgb colormap (colormap.c).  New
rpm-build 01e673
       function pixGlobalNormNoSatRGB(), a variant of pixGlobalNormRGB()
rpm-build 01e673
       that prevents saturation for any component above a specified
rpm-build 01e673
       rank value (adaptmap.c).  Added mechanism for memory
rpm-build 01e673
       management of pix (pix1.c).  Added selective morphology by
rpm-build 01e673
       region given by a mask (morphapp.c).  Fixed prototype extracdtion
rpm-build 01e673
       to work properly with function prototypes as args; released
rpm-build 01e673
       version 1.2 of xtractprotos (parseprotos.c, xtractprotos.c).
rpm-build 01e673
       Add a boxa field for pixaa, along with serialization (pixabasic.c),
rpm-build 01e673
       and modified display of pixaa to include this (pixafunc.c).
rpm-build 01e673
       Coalesced the version numbers for pixa, pixaa, boxa, and boxaa
rpm-build 01e673
       serialization (pix.h).
rpm-build 01e673
       New progs: modifyhuesat displays modified versions on a grid;
rpm-build 01e673
       textlinemask shows simple methods for extracting textline masks.
rpm-build 01e673
rpm-build 01e673
1.52   25 Nov 07
rpm-build 01e673
       Implemented Breuel's whitespace partitioning algorithm (partition.c).
rpm-build 01e673
       Generalized pixColorMagnitude() to allow different methods
rpm-build 01e673
       for computing the color amount of a pixel (colorcontent.c).
rpm-build 01e673
       New methods for computing overlap of boxes (boxfunc.c).
rpm-build 01e673
       New methods for painting (solid) and drawing (outline) of boxes,
rpm-build 01e673
       replacing boxaDisplay() with pixDrawBoxa*() and pixPaintBoxa*()
rpm-build 01e673
       (pix2.c, boxfunc.c).
rpm-build 01e673
       Ray Smith fixed bug in the distance function (seedfilllow.c).
rpm-build 01e673
       For pixConvertTo1() and pixConvertTo8(), treat input pixs as a
rpm-build 01e673
       const and never return a clone or altered cmap (pixconv.c).
rpm-build 01e673
       Make pixGlobalNormalRGB() crash-proof (adaptmap.c).
rpm-build 01e673
       Tony Dovgal added ability to read jpeg comment (jpegio.c).
rpm-build 01e673
rpm-build 01e673
1.51   21 Oct 07
rpm-build 01e673
       Improved histogramming of gray and color images (pix3.c)
rpm-build 01e673
       Histogram statistics (numafunc.c).  Better handling of tiff
rpm-build 01e673
       formats, testing rle and packbits output and improving
rpm-build 01e673
       level 2 postscript conversion efficiency (readfile.c, psio.c).
rpm-build 01e673
       Test program for r/w and display of Sels (prog/seliotest.c).
rpm-build 01e673
       Use endiantest to determine automatically which flags to set
rpm-build 01e673
       when compiling for big- or little-endians (endiantest.c)
rpm-build 01e673
       Compute a color magnitude for each rgb pixel (colorcontent.c).
rpm-build 01e673
       Allow separate modification of hue and saturation (enhance.c).
rpm-build 01e673
       Global transform of color image for arbitrary white point (adaptmap.c).
rpm-build 01e673
   
rpm-build 01e673
1.50   07 Oct 07
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       NOTE CAREFULLY: The  image format enum in imageio.h has
rpm-build 01e673
       changed.  This is an ABI change, and it requires
rpm-build 01e673
       recompilation of the library.
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       Suggestions by David Bryan again resulted in several changes,
rpm-build 01e673
       including improvements to the dwa generating functions and interfaces.
rpm-build 01e673
       Major improvements for dwa code generation, including an
rpm-build 01e673
       optional filename for the output code, adding function prototypes
rpm-build 01e673
       to the code so it can easily be linked outside the library.
rpm-build 01e673
       Addition of 2-way composable dwa functions for bricks, with
rpm-build 01e673
       code addition to the library, and a new interpreter for dwa
rpm-build 01e673
       composable brick sequences  (fmorphauto.c, fhmtauto.c,
rpm-build 01e673
       morphtemplate1.c, hmttemplate1.c, morphdwa.c, dwacomb*.2.c, morphseq.c)
rpm-build 01e673
       Exhaustively tested in six programs (prog/binmorph*_reg,
rpm-build 01e673
       prog/dwamorph*_reg).
rpm-build 01e673
       New input modes for Sels, from both color bitmap editors
rpm-build 01e673
       and a simple file format (sel1.c).
rpm-build 01e673
       Better Sel generation functions in sel2.c, including combs for
rpm-build 01e673
       composable brick operations and linear bricks for comparison.
rpm-build 01e673
       Removed unnecessary copies for more efficient border add'n & removal. 
rpm-build 01e673
       Added RLE basline enc/dec for tiff.
rpm-build 01e673
       Binary morphology documentation on the web page updated for these
rpm-build 01e673
       changes/additions.
rpm-build 01e673
       William Rucklidge unrolled inner loops and added LUTs to
rpm-build 01e673
       speed up several more functions, including correlation
rpm-build 01e673
       (correlscore.c), centroid calculation (morphapp.c),
rpm-build 01e673
       2x linear interp grayscale scanning (scalelow.c),
rpm-build 01e673
       thresholding to binary (grayquantlow.c), and removal
rpm-build 01e673
       of colormaps to gray (pixconv.c).
rpm-build 01e673
rpm-build 01e673
1.49   23 Sep 07
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       NOTE CAREFULLY: The  image format enum in imageio.h has
rpm-build 01e673
       changed.  This is an ABI change, and it requires
rpm-build 01e673
       recompilation of the library.
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       Suggestions by David Bryan resulted in several changes.
rpm-build 01e673
       pixUnpackBinary() unpacks to all depths.
rpm-build 01e673
       Can now write and read tiff in LZW and ZIP (gzip) formats.
rpm-build 01e673
       These, like uncompressed tiff, work on all bit depths.
rpm-build 01e673
       Also enabled pnm 16 bpp r/w, both non-ascii and ascii.
rpm-build 01e673
       ioFormatTest() now has better coverage and clarity; this is
rpm-build 01e673
       used in prog/ioformats_reg.c.
rpm-build 01e673
       Rewrite of morphautogen code to implement opening and closing atomically.
rpm-build 01e673
       Cleaner interaction with new text templates (fmorphauto.c,
rpm-build 01e673
       fhmtauto.c, sarray.c, *template*.txt,).
rpm-build 01e673
       More regression testing (e.g., binmorph1_reg.c, binmorph3_reg.c).
rpm-build 01e673
rpm-build 01e673
1.48   30 Aug 07
rpm-build 01e673
       William Rucklidge sped up pixCorrelationScore() by in-lining
rpm-build 01e673
       all bit operations (jbclass.c).
rpm-build 01e673
       Generalized rank filtering from 8 bpp to color (rank.c).
rpm-build 01e673
       Fixed many functions that take a dest pix so that they don't fail if
rpm-build 01e673
       the dimensions or depth are not consistent with the src pix.
rpm-build 01e673
       The underlying change for this is to pixCopy() (pix1.c).
rpm-build 01e673
       Improved display of Sel as a pix; added selaDisplayInPix() to
rpm-build 01e673
       display all Sels in a Sela, orthogonal rotations of Sels (sel1.c).
rpm-build 01e673
       New functions for thinning and thickening while preserving connectivity
rpm-build 01e673
       and avoiding both free end erosion and dendritic cruft (ccthin.c,
rpm-build 01e673
       prog/ccthin1_reg.c, prog/ccthin2_reg.c).
rpm-build 01e673
       New function pixaDisplayTiledInRows() for compactly tiling pix
rpm-build 01e673
       in a pixa, plus documentation of different existing methods. (pixafunc.c)
rpm-build 01e673
rpm-build 01e673
1.47   22 Jul 07
rpm-build 01e673
       New brick rank order filter (rank.c, prog/ranktest.c, prog/rank_reg.c).
rpm-build 01e673
       Use mirror reflection b.c. to avoid special processing at
rpm-build 01e673
       boundaries (pix2.c).  Simple sobel edge detector (edge.c).
rpm-build 01e673
       Utility for assempling level 2 compressed images in PostScript
rpm-build 01e673
       (psio.c, prog/convertfilestops.c).  Enable read/write of 16 bpp,
rpm-build 01e673
       grayscale tiff (tiffio.c, pix2.c).
rpm-build 01e673
       New function for finding the number of c.c., which is a bit
rpm-build 01e673
         faster than finding the b.b. or the component images (conncomp.c)
rpm-build 01e673
       New functions for finding local extrema in grayscale image (seedfill.c)
rpm-build 01e673
rpm-build 01e673
1.46   28 Jun 07
rpm-build 01e673
       Added interpreted mode for color morphology (morphseq.c).
rpm-build 01e673
       In functions, make effort to consistently do early initialization
rpm-build 01e673
       of ptrs to objects returned on the heap.  This is to try to
rpm-build 01e673
       avoid letting functions return uninitialized objects, even if
rpm-build 01e673
       the return early because of bad input.
rpm-build 01e673
       Split pixa.c into 2 files; revised the component filtering
rpm-build 01e673
       in both pixafunc.c and boxfunc.c.  Added component filtering
rpm-build 01e673
       for "thin" components.
rpm-build 01e673
       Added subsampling functions for numa and pta.
rpm-build 01e673
       Word segmentation now works at both full and half resolution.
rpm-build 01e673
       Better methods for displaying and tiling (for debugging),
rpm-build 01e673
       using pixDisplayWrite(), pixaReadFiles() and pixaDisplayTiledAndScaled().
rpm-build 01e673
rpm-build 01e673
1.45   27 May 07
rpm-build 01e673
       Further improvements of orientation and mirror flip detection
rpm-build 01e673
       (flipdetect.c).  Added 2x rank downscaling and general integer
rpm-build 01e673
       replicative expansion (scale.c).  Simplified interface for
rpm-build 01e673
       averaging, and included tiled averaging, which is yet another
rpm-build 01e673
       integer reduction scaling function (pix3.c).
rpm-build 01e673
rpm-build 01e673
1.44   1 May 07
rpm-build 01e673
       Split pix2.c into (pix2.c, pix3.c), with basic housekeeping
rpm-build 01e673
       functions (e.g., ops on borders, padding) in pix2.c.
rpm-build 01e673
       Split numarray.c into (numabasic.c, numafunc.c), with
rpm-build 01e673
       constructors and accessors in numabasic.c.  Added a number
rpm-build 01e673
       of histogram, rank value and interpolation functions to numafunc.c.
rpm-build 01e673
       Add rms and rank difference comparison functions (compare.c).
rpm-build 01e673
       Separated orientation and mirror flip detection; fixed the latter
rpm-build 01e673
       (flipdetect.c).
rpm-build 01e673
rpm-build 01e673
1.43   24 Mar 07
rpm-build 01e673
       New and fixed functions for handling word boxes (classapp.c)
rpm-build 01e673
       More consistent use of L_* flags (e.g., sarray.h, morph.h)
rpm-build 01e673
       Morphology on color images (gray ops on each component) (colormorph.c)
rpm-build 01e673
       New methods for generating sels; we now have five methods in
rpm-build 01e673
       sel1.c and 3 others in selgen.c.  Also a function that
rpm-build 01e673
       displays Sels as an image, for use in documentation (sel1.c)
rpm-build 01e673
       New high-level converters, such as pixConvertTo8(), pixConvertTo32(),
rpm-build 01e673
        pixConvertLossless()   (pixconv.c)
rpm-build 01e673
       Identify regression tests, and rename them as prog/*_reg.c.
rpm-build 01e673
       Complete revision of plotting package (gplot.c)
rpm-build 01e673
       New functions for comparing pix (compare.c)
rpm-build 01e673
       New morph application functions, such as the ability to run a
rpm-build 01e673
       morph sequence separately on selected c.c. in an image, and
rpm-build 01e673
       a fast, quasi-tophat function (morphapp.c)
rpm-build 01e673
       Cleanup and new interfaces to border representations of c.c. (ccbord.c)
rpm-build 01e673
       Page segmentation application (pageseg.c)
rpm-build 01e673
       Better serialization with version control for all major structs.
rpm-build 01e673
       Morphological brick operations with 2-way composite sels (morph.c)
rpm-build 01e673
rpm-build 01e673
1.42   26 Dec 06
rpm-build 01e673
       New sorting functions, including 2-d sorting, for boxa and pixa,
rpm-build 01e673
       and functions that sort by index (e.g., pixa --> pixa and
rpm-build 01e673
       for 2d, pixa --> pixaa; ditto for boxa).  
rpm-build 01e673
       New accessors for pix dimensions.  A new strtokSafe() to
rpm-build 01e673
       substitute for strtok_r (utils.c).
rpm-build 01e673
       Page flip detection, using both rasterop and dwa morphology
rpm-build 01e673
       (flipdetect.c), with dwa generation (fliphmtgen.c) and testing
rpm-build 01e673
       (prog/fliptest.c).
rpm-build 01e673
       Increased basic sels from 42 to 52 (sel2.c).
rpm-build 01e673
       Better high-level interfaces for binary morphology with
rpm-build 01e673
       brick (separable) sels, both for rasterop (morph.c) and for
rpm-build 01e673
       dwa (morphdwa.c); fully tested for both asymmetric and
rpm-build 01e673
       symmetric b.c. (prog/morphtest3.c).  Faster area mapping
rpm-build 01e673
       reduction for power-of-2 scaling.
rpm-build 01e673
rpm-build 01e673
1.41   5 Nov 06
rpm-build 01e673
       Simplified morph enums, removing all unused ones (morph.h).
rpm-build 01e673
       Added new high-level interfaces for adaptive mapping (adaptmap.c).
rpm-build 01e673
       New method to extract color content of images (colorcontent.c).
rpm-build 01e673
       New method to generate sels from text strings, and to identify
rpm-build 01e673
       roman text that is not properly oriented (thanks to Adam Langley).
rpm-build 01e673
       Fast grayscale min/max (rank) scale reduction by integer factors.
rpm-build 01e673
       New accessors for box and sel, that should be used when possible.
rpm-build 01e673
       Thresholding grayscale mask by bandpass (grayquant.c).
rpm-build 01e673
       Use of strtok_r() for thread safety.
rpm-build 01e673
rpm-build 01e673
1.40   15 Oct 06
rpm-build 01e673
       Fixed xtractprotos for cygwin.  Minor fixes and improved documentation
rpm-build 01e673
       (baseline.c, conncomp.c, pix2.c, morphseq.c, pts.c, numarray.c,
rpm-build 01e673
       utils.c, skew.c).  Add ability to quantize an rgb image to a
rpm-build 01e673
       specified colormap (colorquant.c); tested in prog/cmapquanttest.c.
rpm-build 01e673
       Modifications to allow conditional compilation on MS VC++,
rpm-build 01e673
       and to allow I/O calls to be stubbed out (new files: *iostub.c,
rpm-build 01e673
       zlibmemstub.c, pstdint.h, arrayaccess.h.ms60)
rpm-build 01e673
 
rpm-build 01e673
1.39   31 Aug 06
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       NOTE CAREFULLY:  There has been an interface change to make
rpm-build 01e673
       affine, bilinear and projective transforms more general.
rpm-build 01e673
       The implementation has been changed to allow them to handle
rpm-build 01e673
       all image types and to make them faster (esp. with both sampled
rpm-build 01e673
       and interpolated mapping on color images).
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       Added prog/Makefile.mingw to build executables.  This is still
rpm-build 01e673
       in a relatively raw state.  It is necessary to download
rpm-build 01e673
       gnuwin32 packages for 4 libraries (jpeg, png, zlib, tiff)
rpm-build 01e673
       to link with leptonlib and the main, and I still have not
rpm-build 01e673
       been able to build static executables (they require jpeg2b.dll, etc.).
rpm-build 01e673
rpm-build 01e673
1.38   8 Aug 06
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       NOTE CAREFULLY: There has been an interface change to both
rpm-build 01e673
       simplify and generalize the grayscale morphology operations:
rpm-build 01e673
           pixErodeGray(), pixDilateGray(), pixOpenGray(),
rpm-build 01e673
	   pixCloseGray(), pixTophat() and pixMorphGradient().
rpm-build 01e673
       The prototypes are not changed; old code will compile, but
rpm-build 01e673
       it will be wrong!  The old interface had a size and a type
rpm-build 01e673
       (horizontal, vertical, square).  The new interface takes
rpm-build 01e673
       horizontal and vertical Sel dimensions.
rpm-build 01e673
       |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rpm-build 01e673
       For cross-compilation to make windows programs, you can use
rpm-build 01e673
       src/Makefile.mingw to make a windows version of the library.
rpm-build 01e673
       6x scale-to-gray function donated by Alberto Accomazzi.
rpm-build 01e673
       Interpreter added for sequence of grayscale morphological
rpm-build 01e673
       operations, including the tophat (morphseq.c).
rpm-build 01e673
       Pixacc container added to simplify the interface
rpm-build 01e673
       for accumulator arithmetic using Pix.
rpm-build 01e673
       Removed fmorph.c and fmorphlow.c from the library.  These are
rpm-build 01e673
       very limited and were deprecated in favor of fmorphauto(), which
rpm-build 01e673
       autogens the code from (nearly) any Sel.
rpm-build 01e673
       Fixed some of the gray morphology operations, which had errors
rpm-build 01e673
       on the boundary.  All gray morph ops should now be rigorously
rpm-build 01e673
       OK (graymorph.c).  For testing of graymorph dualities, the 
rpm-build 01e673
       the graymorph interpreter, etc., see prog/morphgraytest.c. 
rpm-build 01e673
rpm-build 01e673
1.37   10 Jul 06
rpm-build 01e673
       [After v.36 was released, Jeff Breidenbach built a Debian
rpm-build 01e673
       distribution of Leptonica based on v.36, and you can now get Leptonica
rpm-build 01e673
       as a Debian package.  Use "apt-cache search leptonica" to see
rpm-build 01e673
       what is available.]  The libraries are now combined into a single
rpm-build 01e673
       library (liblept.a, liblept.so) and the function prototypes are
rpm-build 01e673
       also in a single file (leptprotos.h).  cextract was found not
rpm-build 01e673
       to work on recent versions of linux that support 64 bit data types,
rpm-build 01e673
       and it is no longer distributed with leptonica.  Instead, I wrote
rpm-build 01e673
       a prototype extractor in leptonica (xtractprotos).  When you
rpm-build 01e673
       'make allprotos', it now uses this program.  The shared libraries
rpm-build 01e673
       now have major and minor numbers corresponding to the version.
rpm-build 01e673
rpm-build 01e673
1.36   17 Jun 06
rpm-build 01e673
       Line graphics generation (graphics.c) reorganized; separated out pta
rpm-build 01e673
       generation from rendering.  Can now render with alpha blending.
rpm-build 01e673
       Examples of use are given in prog/graphicstest.c.
rpm-build 01e673
       Sort functions for basic geometrical objects now have the option
rpm-build 01e673
       of returning a numa giving the sort order on the original array.
rpm-build 01e673
       The pixa sort can sort with either clones or copies of the pix.
rpm-build 01e673
rpm-build 01e673
1.35   21 May 06
rpm-build 01e673
       The efficiency of the multipage jbig unsupervised classifier is
rpm-build 01e673
       significantly improved due to a NumaHash struture implemented
rpm-build 01e673
       by Adam Langley.  Functions for computing runlength in 1 bpp
rpm-build 01e673
       images have been added.
rpm-build 01e673
rpm-build 01e673
1.34   7 May 06
rpm-build 01e673
       Completely rewrote the jbig unsupervised classifier.
rpm-build 01e673
       It now works on multiple pages, and is more accurate in performing
rpm-build 01e673
       visually lossless substitutions.  You can classify by connected
rpm-build 01e673
       components, characters, or words.  The old data structures
rpm-build 01e673
       and interfaces have been removed.  New unpackers from 1 to 2 and
rpm-build 01e673
       1 to 4 bpp, with and without colormaps in the dest.
rpm-build 01e673
rpm-build 01e673
1.33   18 Mar 06
rpm-build 01e673
       Generalized color snap to have different src and target colors,
rpm-build 01e673
       and to include colormaps (blend.c).  Distribute into root directory
rpm-build 01e673
       that specifies the version number (e.g., 1.33).  Add color
rpm-build 01e673
       space conversion between rgb and hsv.  Re-bundle thresholding
rpm-build 01e673
       code from (binarize*.c, dibitize*.c) to grayquant*.c.
rpm-build 01e673
       pixThreshold8() now also quantizes 8 bpp --> 8 bpp.
rpm-build 01e673
       High-level pixRotate() that optionally expands image sufficiently
rpm-build 01e673
       so that no pixels are lost in any sequence of rotations (rotate.c).
rpm-build 01e673
       Generalize shear to specify color of pixels brought in, including
rpm-build 01e673
       for in-place operation (shear.c, rotateshear.c).  Faster version of
rpm-build 01e673
       color rotation by area mapping, both about center and about UL corner.
rpm-build 01e673
       You can now use the standard color rotator (pixRotateAM) and get
rpm-build 01e673
       nearly the same speed as with the "Fast" one.
rpm-build 01e673
rpm-build 01e673
1.32   4 Feb 06
rpm-build 01e673
       Ability to specify a sequence of binary morphological
rpm-build 01e673
       (& binary reduction/expansion) operations in a single
rpm-build 01e673
       function (morphseq.c).  Fast downscaling combined with conversion
rpm-build 01e673
       from rbg to gray and to binary (scale.c).  Utility for
rpm-build 01e673
       segmenting images by color (colorseg.c).
rpm-build 01e673
rpm-build 01e673
1.31   7 Jan 06
rpm-build 01e673
       Remove more complicated functions that threshold to 2 bpp, 
rpm-build 01e673
       retaining the simplest interface.  Retest all thresholding and
rpm-build 01e673
       dithering.  Add "ascii" write of PNM.  Improve graphics writing
rpm-build 01e673
       of lines; generalize to colormaps.  New colorization functions
rpm-build 01e673
       (paintcmap.c, blend.c).
rpm-build 01e673
rpm-build 01e673
1.30   22 Dec 05
rpm-build 01e673
       Remove most instances of fprintf(stderr, ...), except within
rpm-build 01e673
       DEBUG or encapsulated in error, warning or info macros. 
rpm-build 01e673
       As a result, there is no output to stderr if NO_CONSOLE_IO is defined. 
rpm-build 01e673
       Adaptive mapping to make bg uniform (adaptmap.c).  A few bug fixes.
rpm-build 01e673
       New PostScript output functions for embedding PS files
rpm-build 01e673
       (prog/converttops).  Generalized some image enhancement functions.
rpm-build 01e673
       New functions for generating hit-miss sels.
rpm-build 01e673
rpm-build 01e673
1.29   12 Nov 05
rpm-build 01e673
       More flexible blending of two images, with and without colormaps
rpm-build 01e673
       (see blend.c).  Painting colormapped images through masks, etc
rpm-build 01e673
       (see paintcmap.c).  More flexible interface for gamma and
rpm-build 01e673
       contrast enhancement (see enhance.c).
rpm-build 01e673
rpm-build 01e673
1.28   8 Oct 05
rpm-build 01e673
       Removed all pix colormaps for 1 bpp.  Allow programmatic resetting
rpm-build 01e673
       of binary morphology boundary conditions.  Added (yet) another
rpm-build 01e673
       simple octcube color quantizer.  New colormap operations.
rpm-build 01e673
rpm-build 01e673
1.27   24 Sep 05
rpm-build 01e673
       Renamed many of the enums and typedefs to avoid namespace
rpm-build 01e673
       collisions.  This includes structs and typedefs for BMP.
rpm-build 01e673
       Interface change to pixClipRectangle(); apologies to everyone
rpm-build 01e673
       whose code is broken by these changes -- I hope it's worth it.
rpm-build 01e673
       Removed colormap.h; simplified all colormap usage, hiding details
rpm-build 01e673
       from all but a few colormap functions.  Am now saving file format
rpm-build 01e673
       in the pix when an image is read, and can by default write
rpm-build 01e673
       out in this format.  Resolution info added for jpeg and png.
rpm-build 01e673
       Added L_INFO* macros and l_info* fctns for printing
rpm-build 01e673
       (e.g., debugging) info.  Suggestions and code kindly
rpm-build 01e673
       supplied by Dave Bryan, who helped solve compatibility issues
rpm-build 01e673
       with MINGW32 (e.g., in timing and directory functions).
rpm-build 01e673
       Added some blending and linear TRC functions.
rpm-build 01e673
       Generalized pixEqual() to include all cases with and without
rpm-build 01e673
       colormaps.  New regression tests in prog: ioformats, equaltest.
rpm-build 01e673
rpm-build 01e673
1.26   24 Jul 05
rpm-build 01e673
       Generalized affine pointwise to do interpolation as well as
rpm-build 01e673
       sampling.  For both projective and bilinear transforms,
rpm-build 01e673
       implemented using both sampling and interpolation.
rpm-build 01e673
       Added function to remove keystoning by computing the necessary
rpm-build 01e673
       projective transform and doing it.  Also find baselines in text images.
rpm-build 01e673
       Added downscaling using accurate area-mapping over subpixels.
rpm-build 01e673
rpm-build 01e673
1.25   25 Jun 05
rpm-build 01e673
       Better endian conversion fctns for 2 and 4 byte words.
rpm-build 01e673
       Remove colormaps before converting by thresholds.
rpm-build 01e673
       Added functions to read header parameters for png and tiff.
rpm-build 01e673
rpm-build 01e673
1.24   5 Jun 05
rpm-build 01e673
       Added image splitting to allow printing in tiles (as several pages).
rpm-build 01e673
       Added new octree quantization function to generate 4 and 8 bpp
rpm-build 01e673
       colormapped output (not dithered).  Fixed bmp resolution.
rpm-build 01e673
       Added new flag for colormap removal (using dest depth based on
rpm-build 01e673
       src colormap).  Added I/O tests (prog/ioformats.c)
rpm-build 01e673
rpm-build 01e673
1.23   10 Apr 05
rpm-build 01e673
       Added thresholding from 8 bpp to 2 and 4 bpp, allowing specification
rpm-build 01e673
       of both the number of output levels and whether or not a colormap
rpm-build 01e673
       is made.
rpm-build 01e673
rpm-build 01e673
1.22   27 Mar 05
rpm-build 01e673
       Add pointer queue facility.  To demonstrate it, you can now
rpm-build 01e673
       generate a binary maze using a cellular automaton and find
rpm-build 01e673
       the shortest path between two points in the maze.  Add heap
rpm-build 01e673
       of pointers (keyed on the first field), which is used to
rpm-build 01e673
       implement a priority queue.  This is applied to search for
rpm-build 01e673
       a "least cost" path on a grayscale image (a generalization
rpm-build 01e673
       of a binary maze).
rpm-build 01e673
rpm-build 01e673
1.21   28 Feb 05
rpm-build 01e673
       Read/write of colormaps to file.  For gplot, add a new
rpm-build 01e673
       latex output terminal.  Bring ptrs into 21st century by
rpm-build 01e673
       including stdint.h, and using uintptr_t for the ptr address
rpm-build 01e673
       arithmetic in arrayaccess.*.  This seems to be OK back to
rpm-build 01e673
       RH 7.0, but if you run into trouble with an earlier
rpm-build 01e673
       C compiler, let me know.  Also, use enums for global
rpm-build 01e673
       constants whenever possible, and qualify named constants
rpm-build 01e673
       (e.g., ADD --> ARITH_ADD, HORIZ --> MORPH_HORIZ) to avoid
rpm-build 01e673
       possible interactions with other libraries.
rpm-build 01e673
rpm-build 01e673
1.20   31 Jan 05
rpm-build 01e673
       Speed up of tiffio and pngio with byte swap generating new pix.
rpm-build 01e673
       In textops.c, ability to split string into paragraphs, 
rpm-build 01e673
       in preparation for more general typesetting.
rpm-build 01e673
       Automatic hit-miss Sel generation for pattern matching.
rpm-build 01e673
       Fast downscaling using a lowpass filter and subsampling.
rpm-build 01e673
       Generalization of several grayscale and color operations
rpm-build 01e673
       to work on colormapped images.  Improved scale-to-gray and
rpm-build 01e673
       scaling reduction operations to be antialiased for best results.
rpm-build 01e673
rpm-build 01e673
1.19   30 Nov 04
rpm-build 01e673
       Additions to fileIO: (1) new jpeg reading options, such as
rpm-build 01e673
       returning warnings and scaled raster; (2) ability to write
rpm-build 01e673
       custom tiff flags.  Better tiling functions.
rpm-build 01e673
       Edge extraction, both with grayscale morphology
rpm-build 01e673
       and clipped convolution filters.  More general painting
rpm-build 01e673
       through a binary mask: pixSetMaskedGeneral().
rpm-build 01e673
       Unpacking from binary to 8, 16 and 32 bpp.  Thresholding
rpm-build 01e673
       and dithering from 8 bpp to 2 bpp ("dibitization").  New bitmap
rpm-build 01e673
       font facility, using a single rendered font in a variety of
rpm-build 01e673
       sizes: allows painting the text on an image (binary, gray, RGB).
rpm-build 01e673
       (People have asked for the ability to write text on images).
rpm-build 01e673
rpm-build 01e673
1.18   25 Aug 04
rpm-build 01e673
       Changed typedefs of built-in types to avoid possible conflicts.
rpm-build 01e673
       Cleaned up and tested all programs in the prog directory.
rpm-build 01e673
       Simplified and fixed the pixSetMasked() and pixCombineMasked()
rpm-build 01e673
       functions.
rpm-build 01e673
rpm-build 01e673
1.17   31 May 04
rpm-build 01e673
       Implemented distance function for 16 bpp.  We can now generate
rpm-build 01e673
       out 16 bpp PNG.  Simple programs for generating PS from a
rpm-build 01e673
       directory of g4tiff or jpeg images.  Changed implementation of
rpm-build 01e673
       erosion to allow either asymmetric or symmetric boundary conditions.
rpm-build 01e673
       The distinction is described on the binary morphology web page.
rpm-build 01e673
       Allow read/write of multipage TIFF files.  Implemented
rpm-build 01e673
       read/write of PNM files.
rpm-build 01e673
rpm-build 01e673
1.16   31 Mar 04
rpm-build 01e673
       New depth conversion functions, improved conversion to false color,
rpm-build 01e673
       new contour rendering (onto 1 bpp or onto the src grayscale image),
rpm-build 01e673
       new orthogonal rotations, better interface for doing arithmetic
rpm-build 01e673
       on 2-d arrays using a pix, improved distance function.
rpm-build 01e673
rpm-build 01e673
1.15   31 Jan 04
rpm-build 01e673
       Fast interpolated color rotation with 4x4 subpixels; has
rpm-build 01e673
       nearly the accuracy of the slower method using 16x16 subpixels.
rpm-build 01e673
       Demonstration of line removal from grayscale sketch in
rpm-build 01e673
       prog/lineremoval.c.  Conversion of grayscale to false color.
rpm-build 01e673
       Fixed shear and rotation functions to handle angle = 0.0 properly.
rpm-build 01e673
       Other small fixes and interface improvements.
rpm-build 01e673
rpm-build 01e673
1.14   30 Nov 03
rpm-build 01e673
       Small implementation changes to list.c.  Better sorting
rpm-build 01e673
       routines for number arrays (numa), plus sorting for box
rpm-build 01e673
       arrays (boxa) and pix arrays (pixa).  PostScript wrapper
rpm-build 01e673
       for jpeg.  Better handling of colormaps, and a simple
rpm-build 01e673
       function to convert an RGB pix with not more than 256
rpm-build 01e673
       colors to the smallest colormapped pix.  PS output wrappers
rpm-build 01e673
       for JFIF JPEG and TIFF G4 files.  Comments compatible
rpm-build 01e673
       with doxygen for automatic documentation.
rpm-build 01e673
rpm-build 01e673
1.13   31 Oct 03
rpm-build 01e673
       Cleaned up documentation in src.  Made libraries and test programs
rpm-build 01e673
       ANSI C++ compliant.  Added special cases to rasterops for
rpm-build 01e673
       alignment to word boundaries.  Fixed pngio.c to work with
rpm-build 01e673
       most recent libpng (1.2.5).
rpm-build 01e673
rpm-build 01e673
1.12   30 Jun 03
rpm-build 01e673
       Implemented border chain representation from a binary image,
rpm-build 01e673
       writes/reads a compressed version, and renders the original
rpm-build 01e673
       image back from the borders.   Also writes outline file out
rpm-build 01e673
       in svg format.  Number arrays (numa) and point arrays (pta)
rpm-build 01e673
       are also extended to 2nd level arrays (numaa, ptaa).
rpm-build 01e673
       Serialized I/O for boxa, pta, and pixa.
rpm-build 01e673
rpm-build 01e673
1.11   31 May 03
rpm-build 01e673
       Implemented generic list handling, for doubly-linked
rpm-build 01e673
       list cons cells and arbitrary objects.
rpm-build 01e673
rpm-build 01e673
1.10   14 Apr 03
rpm-build 01e673
       Implemented simple image enhancements in gray and color:
rpm-build 01e673
       gamma correction, contrast enhancement, unsharp masking.
rpm-build 01e673
       Extended smoothing via block convolution to color.
rpm-build 01e673
       Implemented auto-gen'd DWA version of hit-miss transform;
rpm-build 01e673
       the code for generating these hmt routines is very similar to
rpm-build 01e673
       that for DWA auto-gen'd erosion and dilation.
rpm-build 01e673
       
rpm-build 01e673
1.9    28 Feb 03
rpm-build 01e673
       Implemented a safe, expandable byte queue.  As an example of
rpm-build 01e673
       its use, implemented memory-to-memory compression and decompression
rpm-build 01e673
       using zlib.  Generalized PS write to include RGB color.
rpm-build 01e673
       Implemented a method to find image skew.
rpm-build 01e673
rpm-build 01e673
1.8    31 Jan 03
rpm-build 01e673
       Implemented a simple 1-pass color quantization with dithering,
rpm-build 01e673
       and improved the 2-pass octree color quantization.
rpm-build 01e673
       Documented with an application page, that includes jbig2.
rpm-build 01e673
       Added new general sampling operations and made a table
rpm-build 01e673
       that summarizes the available scaling operations.
rpm-build 01e673
rpm-build 01e673
1.7    31 Dec 02
rpm-build 01e673
       Added pixHtmlViewer(), a formatter that allows portable viewing of
rpm-build 01e673
       a set of images (like a slide show) in a browser.
rpm-build 01e673
       Implemented better octree color quantization, with variable
rpm-build 01e673
       number of colors, pruning the octree for good color clusters,
rpm-build 01e673
       and fast traversal for pixel assignment to colormap.
rpm-build 01e673
rpm-build 01e673
1.6    30 Nov 02
rpm-build 01e673
       Generalized shear and shear rotation to arbitrary locations
rpm-build 01e673
       about which the operation is performed.  Implemented in-place
rpm-build 01e673
       translation using pixRasteropIP().  Implemented arbitrary
rpm-build 01e673
       affine transform of image two ways: pointwise and sequential.
rpm-build 01e673
       Added binarization by error diffusion.  Added simple color
rpm-build 01e673
       quantization by octree.
rpm-build 01e673
rpm-build 01e673
1.5    31 Oct 02
rpm-build 01e673
       Put jpeglib.h in local directory.  This, along with the jmorecfg.h
rpm-build 01e673
       file there prevents compiler warnings about redefined typedefs.
rpm-build 01e673
       Compiled everything with g++ to make strictly ansi C compatible.
rpm-build 01e673
       Added interface gplotFromFile() for simple file-based plotting with 
rpm-build 01e673
       gnuplot 3.7.2.   Added functions to convert 2, 4 and 8 bpp
rpm-build 01e673
       color-mapped (i.e., palletted) images to 24 bpp color or
rpm-build 01e673
       8 bpp grayscale.  Added several jbig2 application cores that
rpm-build 01e673
       only require a simple wrapper to make into programs.
rpm-build 01e673
rpm-build 01e673
1.4    30 Sep 02
rpm-build 01e673
       Added interface to gnuplot 3.7.2 and to x11 display of images. 
rpm-build 01e673
       Added new functions with arrays of images for use in applications
rpm-build 01e673
       such as jbig2 encoders, along with a simple jbig2 implementation
rpm-build 01e673
       using either hausdorff or correlation scoring.  Added centroid
rpm-build 01e673
       finder for images.  For accessing image arrays from arrays of
rpm-build 01e673
       image arrays, added a "new reference" (NEW_REF) flag, with a
rpm-build 01e673
       ref count attached to the array.  Added power-of-2 binary
rpm-build 01e673
       expansion and reduction.
rpm-build 01e673
rpm-build 01e673
1.3    30 Jun 02
rpm-build 01e673
       Extended connected components to 8.  Added morphological
rpm-build 01e673
       operations tophat and hdome, along with clipped arithmetic
rpm-build 01e673
       operators on grayscale images.  Fixed memory error in
rpm-build 01e673
       rasteropGeneralLow() that was found using valgrind.
rpm-build 01e673
       Tested most operations with valgrind for memory errors.
rpm-build 01e673
       Replaced integer arrays with number arrays, to include floats.
rpm-build 01e673
       Added arithmetic functions on grayscale images.
rpm-build 01e673
rpm-build 01e673
1.2    30 May 02
rpm-build 01e673
       Added connected component utility, stack utility, pix arrays,
rpm-build 01e673
       line drawing and seed filling.  Binary reconstruction,
rpm-build 01e673
       both morphological and raster-oriented, are now supported
rpm-build 01e673
       for 4 and 8 connected fills.  Added the distance function
rpm-build 01e673
       on binary images, grayscale reconstruction, and grayscale
rpm-build 01e673
       morphology using the Gil-Werman method.
rpm-build 01e673
rpm-build 01e673
1.1    30 Apr 02
rpm-build 01e673
       Added orthogonal rotations, binary scaling, PS output,
rpm-build 01e673
       binary reconstruction, integer arrays, structuring element
rpm-build 01e673
       input/output.
rpm-build 01e673
rpm-build 01e673
1.0    25 Feb 02
rpm-build 01e673
       Initial distribution, with rasterops, binary morphology (two
rpm-build 01e673
       implementations: rasterops and dwa), affine transforms
rpm-build 01e673
       (translation, shear, scaling, rotation), fast convolution,
rpm-build 01e673
       and basic i/o (BMP, PNG and JPEG).
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
rpm-build 01e673
<form>
rpm-build 01e673
<center>
rpm-build 01e673
<input type="button" onclick="window.close();" value="Close this window">
rpm-build 01e673
</center>
rpm-build 01e673
</form>
rpm-build 01e673
----- JS Window Closer -->
rpm-build 01e673
rpm-build 01e673
</body>
rpm-build 01e673
</html>
rpm-build 01e673