Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/leptonica/version-notes.html @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 <html> | |
| 2 <body BGCOLOR=FFFFE4> | |
| 3 | |
| 4 <!-- JS Window Closer ----- | |
| 5 <form> | |
| 6 <center> | |
| 7 <input type="button" onclick="window.close();" value="Close this window"> | |
| 8 </center> | |
| 9 </form> | |
| 10 ----- JS Window Closer --> | |
| 11 | |
| 12 <!-- Creative Commons License --> | |
| 13 <a rel="license" href="http://creativecommons.org/licenses/by/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.gif" /></a> | |
| 14 This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5 License</a>. | |
| 15 <!-- /Creative Commons License --> | |
| 16 | |
| 17 | |
| 18 <!-- | |
| 19 | |
| 20 <rdf:RDF xmlns="http://web.resource.org/cc/" | |
| 21 xmlns:dc="http://purl.org/dc/elements/1.1/" | |
| 22 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | |
| 23 <Work rdf:about=""> | |
| 24 <dc:title>leptonica</dc:title> | |
| 25 <dc:date>2001</dc:date> | |
| 26 <dc:description>An open source C library for efficient image processing and image analysis operations</dc:description> | |
| 27 <dc:creator><Agent> | |
| 28 <dc:title>Dan S. Bloomberg</dc:title> | |
| 29 </Agent></dc:creator> | |
| 30 <dc:rights><Agent> | |
| 31 <dc:title>Dan S. Bloomberg</dc:title> | |
| 32 </Agent></dc:rights> | |
| 33 <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> | |
| 34 <dc:source rdf:resource="www.leptonica.com"/> | |
| 35 <license rdf:resource="http://creativecommons.org/licenses/by/2.5/" /> | |
| 36 </Work> | |
| 37 | |
| 38 <License rdf:about="http://creativecommons.org/licenses/by/2.5/"> | |
| 39 <permits rdf:resource="http://web.resource.org/cc/Reproduction" /> | |
| 40 <permits rdf:resource="http://web.resource.org/cc/Distribution" /> | |
| 41 <requires rdf:resource="http://web.resource.org/cc/Notice" /> | |
| 42 <requires rdf:resource="http://web.resource.org/cc/Attribution" /> | |
| 43 <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> | |
| 44 </License> | |
| 45 | |
| 46 </rdf:RDF> | |
| 47 | |
| 48 --> | |
| 49 | |
| 50 <pre> | |
| 51 /*====================================================================* | |
| 52 - Copyright (C) 2001 Leptonica. All rights reserved. | |
| 53 - | |
| 54 - Redistribution and use in source and binary forms, with or without | |
| 55 - modification, are permitted provided that the following conditions | |
| 56 - are met: | |
| 57 - 1. Redistributions of source code must retain the above copyright | |
| 58 - notice, this list of conditions and the following disclaimer. | |
| 59 - 2. Redistributions in binary form must reproduce the above | |
| 60 - copyright notice, this list of conditions and the following | |
| 61 - disclaimer in the documentation and/or other materials | |
| 62 - provided with the distribution. | |
| 63 - | |
| 64 - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| 65 - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| 66 - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| 67 - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY | |
| 68 - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
| 69 - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
| 70 - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
| 71 - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |
| 72 - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
| 73 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
| 74 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 75 *====================================================================*/ | |
| 76 </pre> | |
| 77 | |
| 78 | |
| 79 <h2 align=center>Version Notes for Leptonica</h2> | |
| 80 <h3 align=center>3 Jan 2024</h3> | |
| 81 | |
| 82 <hr> | |
| 83 <h2 align=center> <IMG SRC="moller52.jpg" border=1 ALIGN_MIDDLE> </h2> | |
| 84 <hr> | |
| 85 | |
| 86 <p> | |
| 87 Note: The following are highlights of the changes in each version. | |
| 88 They are <i>not</i> a complete listing of the modifications. | |
| 89 | |
| 90 <pre> | |
| 91 | |
| 92 1.85.0 Oct 16, 2024 | |
| 93 * Use wrapper callSystemDebug() instead of system() in programs. | |
| 94 * Fixed Issue #730: artifacts and bad compression with pixWriteJp2k. | |
| 95 Results are now identical with ImageMagick convert (to jp2). | |
| 96 * With PR732, Anton Tykhyy made pix(Read,Write)MemJp2k work with | |
| 97 direct memory access using openjpeg opj_stream functions. This | |
| 98 removes need for temp file on Windows when writing to/from memory. | |
| 99 * Achieve consistency with fclose() in library and lept_fclose() | |
| 100 in progs. Ditto for lept_free, lept_calloc, lept_fopen(), etc. | |
| 101 * Fix generation of bad colormap indices in | |
| 102 jbcorrelation and jbrankhaus | |
| 103 * Fixed coverity scan issues. | |
| 104 * Added findpattern2_reg.c to show generation of sels and their use. | |
| 105 * Added misctest2.c to show crop and clean page functions. | |
| 106 * Added page crop option for removing noise on left and right sides. | |
| 107 * Added page crop option to allow printing to full width of paper. | |
| 108 * Added page crop option to extract page within larger black image. | |
| 109 * Added renderpdf.c to library, to render pdfs as page images with | |
| 110 a specified resolution. | |
| 111 * Modified cleanpdf.c to use l_pdfRenderFiles(). | |
| 112 * Issues #750, #752: problems in bmpio.c with taking address of | |
| 113 packed member. | |
| 114 * Source files changed: adaptmap.c affinecompose.c, | |
| 115 bmpio.c, boxbasic.c, colormap.c, compare.c, | |
| 116 dewarp1.c, dnabasic.c, fpix1.c, gifio.c, | |
| 117 gplot.c, grayquant.c, jbclass.c, jp2kheader.c, | |
| 118 jp2kheaderstub.c, jp2kio.c, jpegio.c, libversions.c, | |
| 119 morphseq.c, numabasic.c, pageseg.c partify.c, pdfapp.c, | |
| 120 pdfio2.c, pix2.c, pixabasic.c, pixcomp.c, pixconv.c, | |
| 121 pnmio.c, psio2.c, ptabasic.c, | |
| 122 readfile.c, recogbasic.c, renderpdf.c, | |
| 123 sarray1.c, sel1.c, utils2.c, writefile.c, | |
| 124 allheaders.h, environ.h | |
| 125 * Prog files changed: alltests_reg.c, binmorph3_reg.c, | |
| 126 blend2_reg.c, blend4_reg.c cleanpdf.c, compressedpdf.c, croppdf.c, | |
| 127 findpattern_reg.c, findpattern1_reg.c findpattern2_reg.c, | |
| 128 htmlviewer.c, jbcorrelation.c, jbrankhaus.c, | |
| 129 jp2kio_reg.c, libre_makefigs.c, misctest1.c, misctest2.c, | |
| 130 pdfio2_reg.c, printimage.c, printsplitimage.c, | |
| 131 printtiff.c, psioseg_reg.c, splitpdf.c, | |
| 132 string_reg.c, tiffpdftest.c, xtractprotos.c | |
| 133 | |
| 134 1.84.1 Jan 3, 2024 | |
| 135 * Remove support for openjpeg versions < 2.1. | |
| 136 * Improve error handling for stringLength() and stringCat(), and | |
| 137 add tests in prog/string_reg. | |
| 138 * Source files changed: blend.c, dnafunc1.c, jp2kio.c, pageseg.c, | |
| 139 partify.c, pix1.c, ptafunc2.c, sarray2.c, utils2.c | |
| 140 * Prog files changed: boxa3_reg.c, string_reg.c, writetext_reg.c, | |
| 141 deskew_it.c | |
| 142 | |
| 143 1.84.0 Dec 23, 2023 | |
| 144 * Add getPdfPageCount() to find the number of pages in a pdf file. | |
| 145 * Add getPdfPageSizes() and getPdfMediaBoxSizes() to find the | |
| 146 information necessary to render images properly. Modify cleanpdf.c | |
| 147 and concatpdf.c to use this information. | |
| 148 * Add prog/splitpdf.c to split a pdf file into nearly equal page sets. | |
| 149 * Add ability to read and write rgba in bmp format, and | |
| 150 test in ioformats_reg. | |
| 151 * Add regression test prog/partition_reg.c | |
| 152 * Change the autotools library name from liblept to libleptonica, | |
| 153 to be consistent with the cmake library name. (Apologies to Jeff!) | |
| 154 * Add tests for 24 bit pix reading and writing in bmp and png in | |
| 155 ioformats_reg. Test new pixDisplayDiff() for visualizing diffs. | |
| 156 * Allow prog/concatpdf to output pdf with tiffg4 encoding and with | |
| 157 mixed tiffg4 and DCT encoding depending on image color content. | |
| 158 * Rename prog/concatpdf --> prog/compresspdf | |
| 159 * Put image processing and generation of output pdf from compresspdf | |
| 160 and cleanpdf into functions in new files: pdfapp.c, pdfappstub.c. | |
| 161 * Add versatile function for cropping an image and filling to | |
| 162 page size, along with prog/croppdf to do this on pdf file. | |
| 163 | |
| 164 1.83.0 Dec 20, 2022 | |
| 165 * Simplify setting the title of pdf files. | |
| 166 * Catch tiff failure to open stream in fopenTiffMemStream() | |
| 167 * Check for POSIX functions fstatat() and dirfd() before use. | |
| 168 * In prog/cleanpdf: do not allow threshold to exceed 190. Make all | |
| 169 parameters required; do not use default values for invalid parameters. | |
| 170 * In prog/concatpdf: add input param for title; add jpeg quality factor | |
| 171 * Fix flaky hash_reg test on i686: sets generated from SelectRange() | |
| 172 can depend slightly on platform. | |
| 173 * Convenience function for adding multiple black and white borders. | |
| 174 * Fix oss-fuzz issue 42202: underined shift in l_convertCharstrToInt(). | |
| 175 * Fix oss-fuzz issue 43841: made pixCountPixels() more efficient. | |
| 176 * Fix oss-fuzz issue 44008: pixCountArbInRect() used wrong depth. | |
| 177 * Always return tiff resolution of 0 (unknown) if not set. | |
| 178 * Simplify operations on pix memory to help avoid mem leaks | |
| 179 * Make bmp non-support of 32-bit bmp (rgba) files explicit. | |
| 180 * Improve tiff read resolution conversion by rounding. | |
| 181 * Use stdatomic.h to make cloning string safe. | |
| 182 Remove all *GetRefcount() and *ChangeRefcount() accessors. | |
| 183 * Replace procName and mainName strings by __func__. | |
| 184 * Remove information about fields in many structs from the public | |
| 185 interface allheaders.h, instead putting them in internal files | |
| 186 pix_internal.h, array_internal.h and ccbord_internal.h. | |
| 187 * Increase the .so number from 5.4.0 to 6.0.0. | |
| 188 * Rename the autotools generated libraries from liblept to libleptonica | |
| 189 * Fix potential memory leaks from recogAverageSamples() and | |
| 190 recogDebugAverages() by not destroying a recog. | |
| 191 | |
| 192 1.82.0 Sept 22, 2021 | |
| 193 * Fix issue-585: reading tiff rgb with tiffbpl = 1.5 * packedbpl. | |
| 194 * Fix issue-586: failure to properly wrap tiff-g4 in pdf without | |
| 195 transcoding. The fix is to do transcoding for tiff-g4, as was | |
| 196 done before April 2021. | |
| 197 | |
| 198 1.81.1 June 11, 2021 | |
| 199 * Added choice of codec (JP2 or J2K) when writing jp2k files. | |
| 200 * Fix use of hashmap with key based on dna. | |
| 201 | |
| 202 1.81.0 June 6, 2021 | |
| 203 * Fixed problems with tiff pdf wrapping photometry. | |
| 204 * Fixed scaling issues in prog/cleanpdf for printing. | |
| 205 * New progs: tiffpdftest, hashtest | |
| 206 * Fixed uninitialized data error in pixAddBorderGeneral() and | |
| 207 pixRemoveBorderGeneral() | |
| 208 * Rewrote Numa functions that discretize into bins. Have | |
| 209 binning by both sorting and histogram. | |
| 210 * Rewrote and simplified pixGetRankColorArray() and pixGetBinnedColor(). | |
| 211 * Added tests to prog/rankbin_reg.c. | |
| 212 * Simplified fpixCopy() and dpixCopy(), and functions that use them. | |
| 213 * Check input for bilateral transforms. | |
| 214 * Add function for splitting a file evenly by lines. | |
| 215 * Check input for getFilenamesInDirectory() | |
| 216 * Many new fuzzers. | |
| 217 * Use size_t for all size inputs to ascii85 encoding/decoding | |
| 218 * New regression tests: encoding_reg.c, binmorph6_reg.c, | |
| 219 flipdetect_reg.c | |
| 220 * Reworked concatpdf for generality, using the Poppler package. | |
| 221 * Removed dwa flipdetection from the library. All the dwa code | |
| 222 is now in flipdetectdwa.c.notused. Likewise prog/flipselgen.c | |
| 223 is retained for completeness, renamed flipselgen.c.notused, | |
| 224 and is not compiled. | |
| 225 * Added hashmap utility (hashmap.c, hashmap.h). | |
| 226 * Removed functions using dnahash on strings, pts and doubles. | |
| 227 * Improved the speed of hashing for strings and doubles. | |
| 228 * Added function for tiling images in pairs for comparison. | |
| 229 * Added null terminations to serialized strings written to memory, | |
| 230 preventing buffer overrun by strlen() [fixed by Stefan Weil]. | |
| 231 * No longer use "NoInit" versions of pix creation in leptonica. | |
| 232 because they risk reading uninitialized data. These functions | |
| 233 remain in the library because they are in use in applications. | |
| 234 * Add two composite binarization functions, from prog/binarize_set. | |
| 235 * Giulio Lunati fixed pnm reading to work with stdin input. | |
| 236 * Removed several of the boxa compare and modify functions. | |
| 237 * Implemented reading jpeg200 data encded in j2k "codestream" format. | |
| 238 Can now read data in both jp2 and j2k. | |
| 239 | |
| 240 1.80.0 28 July 2020 | |
| 241 * Improve bmp handling of 1 bpp images and sanity checking of params. | |
| 242 * Add function to display all rgb gamut colors | |
| 243 * in Makefile.am, use option serial-tests to avoid races in testing | |
| 244 * Make m4 subdirectory and add ax_split_version.m4 there | |
| 245 * Simple function for hue-invariant mapping (pixMapWithInvariantHue) | |
| 246 * Fixed bug in limit of ptra size when used for sorting by bins. | |
| 247 * Use hashmap to count pixel colors in RGB(A) images. | |
| 248 * Convert hashtest program to regression test hash_reg. | |
| 249 * Convert croptest program to regression test crop_reg. | |
| 250 * New color segmentation by region growing (colorfill.c) | |
| 251 * New regression tests: colorfill_reg, circle_reg, ccbord_reg. | |
| 252 * Set maxima for all allocations for common leptonica data structures. | |
| 253 * Don't fail when downscaling 2, 4, 8, and 32 bpp images, even | |
| 254 to one pixel, invoking pixScaleSmooth(). | |
| 255 * New functions that select 1 bpp components based on their area. | |
| 256 * Incremental addition to sorted array of numbers. | |
| 257 * new prog/fuzzing directory for oss-fuzz based fuzzing programs | |
| 258 * use of pixcmapIsValid() with extra argument to determine validity | |
| 259 with the pix it is attached to. | |
| 260 * Use lept_stderr() in all programs in the prog directory. | |
| 261 * New program rasteroptest() for thorough testing of rasterop functions. | |
| 262 * Removed the pixSaveTiled*() functions | |
| 263 * Stubbed pixDisplayWrite(). Last used in tesseract 3.04.01 (2/2016). | |
| 264 | |
| 265 1.79.0 1 Jan 2020 | |
| 266 * Clean up auto-generation of files; removed 'register' | |
| 267 * Some fixes for issues identified by fuzzer | |
| 268 * New source files: checkerboard.c | |
| 269 * New programs: replacebytes.c, webpanimio_reg.c, partifytest.c, | |
| 270 rectangle_reg.c, lowsat_reg.c, rotate_it.c, scale_it.c, dewarp_it.c, | |
| 271 pdfio1_reg.c, pdfio2_reg.c, checkerboard_reg.c, underlinetest.c. | |
| 272 * Convert to standard reg test: heap_reg.c, pixa1_reg.c, smallpix_reg.c | |
| 273 * Improve data checking when reading image file headers | |
| 274 (pnm, png, jpeg, tiff) | |
| 275 * Fix some bugs in pnm reading | |
| 276 * Fix inconsistencies with the encoding type flags in pdf writing | |
| 277 * Allow tiff to write images with colormaps | |
| 278 * Fix errors in PS code; made some functions static | |
| 279 * Add code for animated webp (requires webp mux and demux libraries) | |
| 280 * Add "partify" application for separating parts in a musical score | |
| 281 * Enable tif read/write of gray+alpha and rgba; filter out tiff | |
| 282 pixels that are not uint and compression by tile | |
| 283 * Apply consistent formatting of static const variables | |
| 284 * Add programs for scaling, rotation and deskew, named dewkew_it, | |
| 285 rotate_it and scale_it, for useful operations on arbitrary images. | |
| 286 * Convert pdfiotest program to two regression tests: pdfio1_reg | |
| 287 and pdfio2_reg. | |
| 288 * Remove all use of strncat; use stringCat(). | |
| 289 * New functions from removing outliers in sequences of boxes. | |
| 290 * Generalize pixAverageInRect(): mask, region and range filters, | |
| 291 and subsampling. New pixAverageInRectRGB(). | |
| 292 * Fix int overflow bug in pixMedianCut(); required new heap accessor. | |
| 293 * New pixMultiplyGray() allows pix to be multiplied by an array (or | |
| 294 another pix) | |
| 295 * Better routines for counting color. | |
| 296 * Lossless conversion for RGB to cmap with not more than 256 colors. | |
| 297 * New histo based global thresholding: pixThresholdByHisto(). | |
| 298 * Allow most reg tests to run even if external libraries are not | |
| 299 available. | |
| 300 * New one-line gplot functions that return a pix. | |
| 301 * New application to find where corners meet in a checkerboard. | |
| 302 * Add utility functions for painting through mask in cmap pix, | |
| 303 creating a hit-miss sela from a color pix, equality of two pta. | |
| 304 * Proper handling of 1 bpp colormap tiffs: remove when reading, | |
| 305 preserve when writing. | |
| 306 * Deprecate three pixSaveTile*() functions; removed all calls to | |
| 307 these from the library and progs. | |
| 308 * Include auto_config.h explicitly in all src and prog files. | |
| 309 * Improve input data checking for bmp files. | |
| 310 * Added pixAutoPhotoinvert() for tesseract, to automatically photo- | |
| 311 invert text regions where the background is black and text is white. | |
| 312 | |
| 313 1.78.0 21 Mar 19 | |
| 314 * Various improvements in handling boxa sequences and transforms. | |
| 315 * New regression tests: boxa4_reg, string_reg | |
| 316 * New function for copying a pix, filtered by a boxa. | |
| 317 * Modify histogram method for image comparison. | |
| 318 * More careful attention to invalid boxes in box geometry functions. | |
| 319 * Better string and array functions for search and replace. | |
| 320 * Convenience functions for generating simple masks. | |
| 321 * Allow pdf writing of jp2k images, in full generality. | |
| 322 * Allow writing compressed ps images for printing. | |
| 323 * Modified enum comments to include a suggested enum name. | |
| 324 * New program: imagetops | |
| 325 | |
| 326 1.77.0 14 Dec 18 | |
| 327 Here is the current status of CVE issues with leptonica; see | |
| 328 https://security-tracker.debian.org/tracker/source-package/leptonlib | |
| 329 * CVE-2018-7442: potential injection attack because '/' is allowed | |
| 330 in gplot rootdir. | |
| 331 Functions using this command have been disabled by default in the | |
| 332 distribution, starting with 1.76.0. As for the specific issue, it | |
| 333 is impossible to specify a general path without using the standard | |
| 334 directory subdivider '/'. | |
| 335 * CVE-2018-7186: number of characters not limited in fscanf or sscanf, | |
| 336 allowing possible attack with buffer overflow. | |
| 337 This has been fixed in 1.75.3. | |
| 338 * CVE-2018-3836: command injection vulnerability in gplotMakeOutput(). | |
| 339 This has been fixed in 1.75.3, using stringCheckForChars() to block | |
| 340 rootnames containing any of: ;&|>"?*$()/< | |
| 341 * CVE-2017-18196: duplicated path components. | |
| 342 This was fixed in 1.75.3. | |
| 343 * CVE-2018-7441: hardcoded /tmp pathnames. | |
| 344 These are all wrapped in special debug functions that are not | |
| 345 enabled by default in the distribution, starting with 1.76.0. | |
| 346 * CVE-2018-7247: input 'rootname' can overflow a buffer. | |
| 347 This was fixed in 1.76.0, using snprintf(). | |
| 348 * CVE-2018-7440: command injection in gplotMakeOutput using $(command). | |
| 349 Fixed in 1.75.3, which blocks '$' as well as 11 other characters. | |
| 350 Wrapped the few 'system' calls in an extra layer of debug code. | |
| 351 More coverity scan fixes; defects are about 1 per 10,000 source lines. | |
| 352 New regression tests: numa1_reg, numa2_reg, lowaccess_reg, | |
| 353 pixmem_reg. | |
| 354 New non-regression test programs: histoduptest | |
| 355 Juergen Buchmueller is working on Lua bindings. He typedef'd l_ok | |
| 356 and used it in 1100 functions that return a success/failure status. | |
| 357 He also helped clean up remaining issues in the doxygen-generated | |
| 358 documentation. | |
| 359 Using a packed struct for bmp headers to avoid crash on | |
| 360 some big-endians. | |
| 361 Fixed a bug in the prototype parser for xtractprotos that was | |
| 362 surfaced by a typedef declaration for the bmp headers. | |
| 363 Cleaned up IOS guards to avoid compiling a system(3) call on IOS. | |
| 364 Renamed autobuild --> autogen.sh | |
| 365 Added some basic pixa functions for rotation and translation. | |
| 366 Added an iterative method to find rectangular coverings for | |
| 367 arbitrary connected components. | |
| 368 Converted two tests to reg tests running in alltests_reg: | |
| 369 ptra1_reg, ptra2_reg | |
| 370 Enabled read/write for standard jpeg compressed tiff images. | |
| 371 Enabled reading for the old (deprecated) jpeg-encoded tiffs. | |
| 372 Fix range selectors for pixa, pixaa, boxa, boxaa, pta: | |
| 373 Now, last = -1 goes to the end. | |
| 374 When reading tiff --> pix, insert IMAGEDESCRIPTION into text field. | |
| 375 Converted iotest to reg test iomisc_reg; added to alltests_reg | |
| 376 Converted rasterop_reg into a standard regression test; added | |
| 377 to alltests_reg. | |
| 378 Converted boxa2_reg and fhmtauto_reg into standard regression tests; | |
| 379 added to alltests_reg. | |
| 380 Split boxa sequence functions out of boxfunc4.c, into a new boxfunc5.c. | |
| 381 Simplified bmp header and made reading more clearly endian | |
| 382 agnostic (Juergen Buchmueller) | |
| 383 New boxa3_reg regression test. This tests sequences of boxes | |
| 384 by two new boxfunctions in boxfunc5.c. | |
| 385 New bootnumgen4.c for more digit templates. | |
| 386 Rename prog/recog_bootnum.c --> prog/recog_bootname1.c | |
| 387 New in prog: recog_bootnum2.c, recog_bootnum3.c, recogtest7.c | |
| 388 Fixed uninitialized data in pixCentroid() on 1 bpp pix. | |
| 389 New reg test: bytea_reg.c. (removed byteatest.c) | |
| 390 Fixed bug in non-transcoding pdf generation from 1 bpp png. | |
| 391 Added LGTM to static analyzers that run over the library. | |
| 392 | |
| 393 1.76.0 1 May 18 | |
| 394 Modify infrastructure to fix outstanding security issues. By default, | |
| 395 you can no longer create temp directories and temp files whose | |
| 396 names are known to the compiler. Also, prevent "system" calls, | |
| 397 which were used for image display and gnuplot. | |
| 398 Replaced remaining sprintf() with snprintf() in prog tests. | |
| 399 Added non-transcoding functions for generating pdf from jpeg pixacomp | |
| 400 Add control of jpeg quality from pixWriteMem() and pixWriteStream() | |
| 401 Fixed getFilenamesInDirectory() to properly identify directories | |
| 402 Prevent size overflow in calloc for kernel; cleaned it up fpix and dpix | |
| 403 bmp reading now accepts negative height | |
| 404 Simplified splitimage2pdf; it no longer uses ps2pdf | |
| 405 Remove name-mangling WRITE_AS_NAMED compile option. | |
| 406 Removed 2 deprecated write functions. | |
| 407 Added these regression tests: | |
| 408 locminmax_reg, speckle_reg, watershed_reg, | |
| 409 | |
| 410 1.75.3 15 Feb 18 | |
| 411 Fixed some coverity scan issues. | |
| 412 Autotools fix to check for png if enabling gnuplot (James Le Cuirot). | |
| 413 | |
| 414 1.75.2 11 Feb 18 | |
| 415 Converted several progs to standard regression tests. | |
| 416 Added these tests to the alltests_reg suite: | |
| 417 adaptnorm_reg, binmorph1_reg, binmorph3_reg, equal_reg, | |
| 418 extrema_reg, grayfill_reg, falsecolor_reg, grayquant_reg. | |
| 419 Autotools fix for restricting giflib to 5.1+, and allowing | |
| 420 openjpeg 2.3 (James Le Cuirot). | |
| 421 | |
| 422 1.75.1 31 Jan 18 | |
| 423 Simpler and more accurate function for finding word masks from | |
| 424 text image; better debugging and more thorough testing. | |
| 425 Added to regression test set: prog/italic_reg | |
| 426 Fix for potential injection attack using gplot rootdir. | |
| 427 Bug fix for bmp reading to set opacity. | |
| 428 | |
| 429 1.75.0 24 Jan 18 | |
| 430 This is a new version, for major Ubuntu release 18.04. | |
| 431 $TMPDIR path rewriting turned off on Unix; only used for Windows. | |
| 432 Added pix conversion to depth 2 and 4. We now have general | |
| 433 converters to 1, 2, 4, 8, 16 and 32 bpp. | |
| 434 Modified giflib to use read/write from/to memory; no temp files; | |
| 435 no longer support versions before 5.1. | |
| 436 Move most low-level code from separate files to their callers; | |
| 437 about 30 of them became static. | |
| 438 Improved table detection on scanned page images (tests: pageseg_reg.c) | |
| 439 Added support for write/compare regression tests for files. | |
| 440 Modified printimage for more flexibility. | |
| 441 Enable lookup by key on comma-separated key/value text file. | |
| 442 Update README.html for building with Visual Studio. | |
| 443 Improved functions for getting pixel averages in RGB images | |
| 444 Simplified and speedup of unsharp masking. | |
| 445 New function for detecting and correcting text orientation. | |
| 446 Remove slow sharpening operation when not appropriate during scaling. | |
| 447 Better handling of gplots with 0 or 1 data point. | |
| 448 Coverity scan fixes. | |
| 449 Modified jpeg2000 header to use openjpeg 2.3. | |
| 450 Improved depth accessors for pixa and pixaa; added size accessors | |
| 451 for pixa and pixaa. | |
| 452 Bug fix in webp interface on read error. | |
| 453 New function that finds the closest boxes in a boxa to any particular | |
| 454 box, in each of 4 directions. | |
| 455 New regression tests in automated sequence: blend5_reg, quadtree_reg, | |
| 456 wordboxes_reg. | |
| 457 New program: textorient | |
| 458 Removed programs: snapcolortest | |
| 459 | |
| 460 1.74.4 11 Jun 17 | |
| 461 Converted two progs to reg tests | |
| 462 New version because 1.74.3 had some spurious files (xtractprotos, | |
| 463 endianness.h) | |
| 464 | |
| 465 1.74.3 9 Jun 17 | |
| 466 Coverity scan fixes. | |
| 467 Several fixes for running on Windows, including subtle one with tiff | |
| 468 encoding depending on pad bits. | |
| 469 Utility and test if a page image likely has a table. | |
| 470 Remove use of pixCreateTemplateNoInit() where it may cause problems. | |
| 471 Make release 'configure-make ready' | |
| 472 | |
| 473 1.74.2 19 May 17 | |
| 474 Many simplifications and improvements to recognizer. | |
| 475 Cleanup of doxygen comments | |
| 476 Encoded pdf title in escape 4-byte hex (for safety) | |
| 477 Fixed several hundered coverity scan possible leaks | |
| 478 Added about 20 regression tests to the automated set. | |
| 479 Improved vertical alignment of dewarp. | |
| 480 Implemented preliminary method for correcting dewarp foreshortening | |
| 481 due to page curvature. | |
| 482 Improved multipage tiff reading and writing. | |
| 483 Added a new version of textline finding. | |
| 484 Fixed bug in fast 2D sharpening code (used in some scaling ops) | |
| 485 BMP i/o rewritten to implement memory version directly. | |
| 486 PNG i/o functions added for encoding and decoding directly to memory. | |
| 487 Method for finding light color regions on scanned page images. | |
| 488 | |
| 489 1.74.1 3 Jan 17 | |
| 490 Configuration changes to support the patch number in the | |
| 491 version (major.minor.patch). | |
| 492 Removed all remaining pixDisplayWrite() calls in prog/. | |
| 493 Cleaned up and/or promoted about 15 programs to full regression | |
| 494 tests. There are now 95 tests in the regression set. | |
| 495 Over half the initial coverity scan warnings have been removed. | |
| 496 | |
| 497 1.74.0 10 Dec 16 | |
| 498 Leptonica development was moved to github. The master is at: | |
| 499 github.com/danbloomberg/leptonica | |
| 500 Egor Pugin is the maintainer of the site. | |
| 501 A very large number of changes have been made. Some of them follow; | |
| 502 details can be found in the git commit messages. | |
| 503 Static makefiles modified to work with gnu*9 and c*9. | |
| 504 Modify SET macros to work on windows. | |
| 505 New modes for RGB --> gray conversion. | |
| 506 New functions added for displaying a pix from a pixa. | |
| 507 Split out sort/hash/set/map functions for dna, sarray and pta. | |
| 508 More robust horizontal deskew on multi-column page images. | |
| 509 Improve webpio_reg test. | |
| 510 Remove X11 display for gplot; it is no longer supported. | |
| 511 Remove most sleep calls, which were put in for gplot; no longer needed. | |
| 512 Removed use of gthumb in library. | |
| 513 Removed use of pixDisplayWrite() in the library; still in some progs. | |
| 514 Improved test for endianness in makefile.static; no longer requires | |
| 515 any local files or building and running a program. | |
| 516 Modified all files for doxygen output (spearheaded by | |
| 517 Juergen Buchmueller) | |
| 518 Improved plotting of the boxes in a boxa. | |
| 519 Replaced the slow point hash function with a simple fast one. | |
| 520 Added pam (4 component) format writing to pnmio.c (Juergen Buchmueller) | |
| 521 Improved rendering of pixa in side/by/sides. | |
| 522 Better utilities for pixa and pixacomp. | |
| 523 Add read/write serialization functions from/to memory for all | |
| 524 the major data structures that do not already have them. | |
| 525 More serialized boot recognizers stored as self-generating code. | |
| 526 Cleaned up generating an adapted recognizer from the boot recognizer. | |
| 527 Simplified temp file naming; removed most instances of named | |
| 528 temp files from non-debug code; use tmpfile() and a wrapper | |
| 529 l_makeTempFilename(). | |
| 530 Simplify and streamline multipage tiff reading (Jeff Breidenbach). | |
| 531 Improvement of Otsu thresholding. | |
| 532 Recognize outstanding contributors to leptonica over the years. | |
| 533 New gif mem read/write interface that avoids writing a temp file, | |
| 534 contributed by Tobias Peirick. | |
| 535 Use double arrays (dna) instead of float (numa) for set ops. | |
| 536 Enrolled in coverity scan to find potential bugs (Stefan Weil | |
| 537 managed it). Fixed about 200 of them, mostly potential memory | |
| 538 leaks from early function exit. | |
| 539 Cleanup of gray quantization functions and tests. | |
| 540 Refactored connectivity-conserving operations, to make them more useful. | |
| 541 Provided methods for measuring and regularizing the width of strokes. | |
| 542 Removed viewfiles.c from library; code is now in prog htmlviewer.c. | |
| 543 Better debugging in page segmentation (pageseg.c) | |
| 544 Deprecated the pixDisplayWrite*() debugging methods. | |
| 545 Added about 15 regression tests to the framework in alltests_reg.c | |
| 546 Final mods for compatibility with tesseract 4.00. | |
| 547 | |
| 548 1.73 25 Jan 16 | |
| 549 All lept_* functions have been rewritten to avoid path rewrites for | |
| 550 output to temp files, which were introduced in 1.72. | |
| 551 Now, (1) files are written to the directory specified and (2) we | |
| 552 are careful to write to subdirectories of /tmp/lept/ for all test | |
| 553 programs, starting with the reg tests and prog/dewarp* and | |
| 554 prog/recog*. This also required re-writing stringcode.c and | |
| 555 stringtemplate1.txt to write temp files to subdirectories. | |
| 556 Goal is to write to the specified path while not spamming the | |
| 557 /tmp and /tmp/lept directories. This is particularly important | |
| 558 on windows because files in the <TEMP> directory are not cleared | |
| 559 on reboot. | |
| 560 Naming changes (to avoid collisions): | |
| 561 #defines MALLOC --> LEPT_MALLOC, CALLOC --> LEPT_CALLOC, etc. | |
| 562 ByteBuffer --> L_ByteBuffer | |
| 563 Added grayscale histogram functions that can be used to compare images. | |
| 564 Added functions to determine if an image region has horizontal | |
| 565 text lines. | |
| 566 Added functions to compare photo regions of images to determine | |
| 567 if they're essentially the same. | |
| 568 Added red-black tree utility functions to implement maps and sets. | |
| 569 The keys for maps and sets can be 64-bit entities (signed and | |
| 570 unsigned integers and doubles). | |
| 571 Implemented hashsets and hashmaps, using 64 bit keys. | |
| 572 Replaced the numaHash by l_dnaHash; removed numa2d | |
| 573 Improved security of tiff and gif reading, to prevent memory corruption | |
| 574 when reading bad data. | |
| 575 Removed src files: bootnumgen.c | |
| 576 Added src files: rbtree.c, rbtree.h, map.c, bootnumgen1.c, bootnumgen2.c | |
| 577 Added prog files: rbtreetest.c, maptest.c, settest.c, hashtest.c, | |
| 578 recog_bootnum.c, percolatetest.c | |
| 579 Added files for building using cmake (Egor Pugin) | |
| 580 | |
| 581 1.72 5 Apr 15 | |
| 582 Better handling of 1 bpp colormap read/write with png so that | |
| 583 they are losseless. The colormap is always removed on read and | |
| 584 the conversion is to the simplest non-cmapped pix that can fully | |
| 585 represent the input -- both with and without alpha. | |
| 586 Fixed overflow bug in pixCorrelationBinary(). | |
| 587 Fixed orientation flags and handling of 16 bit RGB in tiff. | |
| 588 Also new wrappers to TIFFClientOpen(), so we no longer go through | |
| 589 the file descriptor for memory operations. | |
| 590 Improvements in the dewarp functions. | |
| 591 New box sequence smoothings. | |
| 592 New antialiased painting through mask; previously it was only | |
| 593 implemented for connected components in a mask. | |
| 594 Better error handling and debug output with jpeg2000 read/write. | |
| 595 Implemented base64 encoding. This allows binary data to be represented | |
| 596 as a C string that can be compiled. Used this in bmf utility. | |
| 597 Implemented automatic code generation for deserialization from | |
| 598 compiled strings (stringcode.*) | |
| 599 Regression tests write to leptonica subdir of <Temp> in windows; in | |
| 600 unix it is optional. This avoids spamming the <Temp> directory. | |
| 601 Added new colorspace conversions (XYZ, LAB). | |
| 602 New source files: encoding.c, bmfdata.h, stringcode.c, stringcode.h, | |
| 603 bootnumgen.c. | |
| 604 Removed source files: convolvelow.c, graymorphlow.c | |
| 605 New programs: genfonts_reg, colorize_reg, texturefill_reg, | |
| 606 autogentest1, autogentest2. | |
| 607 alltests_reg now has 66 tests. | |
| 608 | |
| 609 1.71 18 Jun 14 | |
| 610 This version supports tesseract 3.04. In particular, 3.04 | |
| 611 has automatic conversion of a set of scanned images, either in a | |
| 612 directory or coming directly from a scanner, into pdf with injected | |
| 613 text. This is something we've wanted to do for several years! | |
| 614 Improved jp2k header reading, including resolution. | |
| 615 Removed src files: rotateorthlow.c, pdfio.c, pdfiostub.c | |
| 616 Renamed jp2kio.c, jp2kiostub.c ==> jp2kheader.c, jp2kheaderstub.c. | |
| 617 These header reading functions parse the jp2k files, and | |
| 618 don't require a jpeg2000 library. | |
| 619 New jp2kio.c, jp2kiostub.c, that uses openjpeg-2.X to read | |
| 620 and write jp2k. We now support I/O from these formats: | |
| 621 png, tiff, jpeg, bmp, pnm, webp, gif and jp2k | |
| 622 as well as writing to PostScript and pdf. | |
| 623 New pdfio1.c, pdfio1stub.c, pdfio2.c pdfio2stub.c, where we've | |
| 624 split functions into high and low level. | |
| 625 Fixed memory bug in bilateral.c | |
| 626 Improved reading/write of binary data from file. For example, | |
| 627 l_binaryReadStream() can now be used to capture data piped | |
| 628 in via stdin. | |
| 629 Font directory now arg passed in everywhere (not hardcoded) | |
| 630 Don't write temporary files to /tmp; only to a small number of | |
| 631 subdirectories, to avoid spamming the /tmp directory. E.g., | |
| 632 for regression tests, the current output is now to /tmp/regout/. | |
| 633 For jpeg reading modify pixReadJpeg() to take as a hint | |
| 634 a bit flag that allows extraction of only the luminance channel. | |
| 635 Allow wrapping of pdf objects from png images without transcoding | |
| 636 (thanks to Jeff Breidenbach) | |
| 637 Better support for alpha on read/write with png, including | |
| 638 1 bpp with colormap, alpha (supported in png with transparency array) | |
| 639 | |
| 640 1.70 3 Feb 14 (distribution to debian; ubuntu 14-04; 4.1.0) | |
| 641 New bilateral filtering. | |
| 642 New simple character recognition utility. | |
| 643 Improved dewarping functionality, in model building and rendering. | |
| 644 More flexible use of ref models. | |
| 645 Better and more consistent handling of alpha layer in RGBA, though | |
| 646 use of the spp field. Ability to handle more png files with alpha, | |
| 647 including palette with alpha. | |
| 648 New fast converters from jpeg and jpeg2000 to pdf, without transcoding. | |
| 649 Made bmp reader (and pix reading in general) more robust; avoid | |
| 650 size overflow errors. | |
| 651 New text labelling operations; depth conversion of a set of images | |
| 652 New license (essentially BSD 2-clause), to specify conditions | |
| 653 for both source and binary distribution. | |
| 654 Improved auto make: make all progs, install just 11, test 61. | |
| 655 New src files: bilateral.{c,h}, dewarp1.c, dewarp2.c, | |
| 656 dewarp3.c, dewarp4.c, jp2kio.c, jp2kiostub.c, | |
| 657 pixlabel.c, recogbasic.c, recogdid.c, recogident.c, | |
| 658 recogtrain.c, recog.h | |
| 659 New prog files: adaptmap_dark.c, alphaxform_ret.c, | |
| 660 bilateral_reg.c, binarize_reg.c, binarize_set.c, | |
| 661 blackwhite_reg.c, blend1_reg.c, blend3_reg.c, blend4_reg.c, | |
| 662 boxa1_reg.c, colorcontent_reg.c, coloring_reg.c, | |
| 663 colorspace_reg.c, compare_reg.c, converttopdf.c, | |
| 664 croptest.c, dewarprules.c, dewarptest1.c, dewarptest2.c, | |
| 665 dewarptest3.c, dewarptest4.c, displayboxa.c, displaypix.c, | |
| 666 displaypixa.c, findcorners_reg.c, fpix1_reg.c, | |
| 667 fpix2_reg.c, fpixcontours.c, insert_reg.c, italictest.c, | |
| 668 jpegio_reg.c, label_reg.c, multitype_reg.c, nearline_reg.c, | |
| 669 newspaper_reg.c, numa1_reg.c, numa2_reg.c, recogsort.c, | |
| 670 recogtest1.c, shear1_reg.c, webpio_reg.c, wordboxes_reg.c | |
| 671 Removed src files: arithlow.c, binexpandlow.c, binreducelow.c, | |
| 672 dewarp.c | |
| 673 Removed prog files: blend_reg.c, blendtest1.c, | |
| 674 dewarptest.c, fpix_reg.c, inserttest.c, numa_reg.c, rotatetest2.c | |
| 675 shear_reg, xvdisp.c | |
| 676 | |
| 677 1.69 16 Jan 12 (distribution to debian; ubuntu 12-04; 3.0.0) | |
| 678 Fixed bug in pdf generation for large files, using a new | |
| 679 double array (dnabasic.c). Added several new modes for pdf | |
| 680 generation from sets of images. | |
| 681 Dewarp based on image content now aligns to left and right margins; | |
| 682 works at book level; is more robust to bad disparity models; | |
| 683 version 2 serialization. | |
| 684 Fixed regutils to return the actual number of errors. | |
| 685 Improved sorting efficiency of numas in cases where binning, | |
| 686 which is order N, makes sense. | |
| 687 Fixed fpix serialization (now version 2). | |
| 688 New version (5) of xtractprotos, allows putting prototypes in-line in | |
| 689 allheaders.h. Having them separately in leptprotos.h still an option | |
| 690 New copyright (BSD, 2 clause) on src files. | |
| 691 Removed all trailing whitespace in src files. | |
| 692 New src files: boxfunc4.c coloring.c, dnabasic.c | |
| 693 New prog files: dna_reg.c, alphaops_reg.c | |
| 694 Removed prog file: alphaclean_reg.c | |
| 695 | |
| 696 1.68 10 Mar 11 | |
| 697 Fixed windows issues with passing pointers across C-runtime boundaries | |
| 698 when using dlls, by providing special functions (e.g., lept_fopen()). | |
| 699 Proper version numbers are now set with automake. | |
| 700 New utility (quadtree.c) for generating quadtree statistics. | |
| 701 New utility (in colorspace.c) for conversions to and from YUV. | |
| 702 Refactored functions for assembling image data for generating | |
| 703 either PS or PDF images using g4, jpeg or flate encoding. | |
| 704 Better tempfile names, using current time in microseconds. | |
| 705 Functions for getting resolution from jpeg and png files. | |
| 706 Use size_t throughout for reading and writing binary data. | |
| 707 Deprecate arrayRead*() and arrayWrite() functions; replace in | |
| 708 the library with l_binaryRead*() and l_binaryWrite(). | |
| 709 Better handling of colormap images for in-place rasterop and shear. | |
| 710 New utility (bytearray.c) for parsing and handling binary data; | |
| 711 used for generating PDF files. | |
| 712 New utility (pdfio.c) for generating PDF files. | |
| 713 Refactored regutils functions to make them simpler to use. | |
| 714 Top-level deskew now works on any image. | |
| 715 Added functions in utils.c for cross-platform development, mostly | |
| 716 for functions that make and remove directories, copy, move | |
| 717 and delete files, etc. It should now be straightforward to write | |
| 718 programs that will compile and run on windows. | |
| 719 Reg tests have better printout; all give timings. | |
| 720 New utility program: convertfilestopdf | |
| 721 | |
| 722 1.67 9 Nov 10 | |
| 723 Autoconf: now built with James Cuirot's config files that | |
| 724 build the library and all 200 progs. | |
| 725 New sudoku solver. Just a game, but there are interesting aspects. | |
| 726 Modified parseprotos.c to reject a type of "extern" decl. | |
| 727 Add faster implementation for very small gray morphology | |
| 728 operations (3x1, 1x3, 3x3). | |
| 729 Eliminate warnings on recent gcc if you don't check return values | |
| 730 from fread, fscanf, fgets, system, etc. | |
| 731 Convolution: new functions for windowed variance and stdev; allow | |
| 732 non-square kernel for windowed mean square. | |
| 733 Put stdio.h and stdlib.h in alltypes.h, so they're not required | |
| 734 in any .c files. | |
| 735 Replace numaConvolve(), which is just a windowed mean, by | |
| 736 windowed statistics functions (mean, mean square, variance). | |
| 737 Generalize pixExtractOnLine() for arbitrary lines. | |
| 738 Add pix interface to webp (webpio.c, webpiostub.c). This is a | |
| 739 new open source codec, based on the video codec vpx (webm). | |
| 740 Serialization of FPix and DPix | |
| 741 Interconversion between FPix and DPix | |
| 742 Integer scaling of FPix and DPix; includes the last row and column. | |
| 743 New convertfiles.c: depth conversion on files in a directory. | |
| 744 Testing programs in prog: | |
| 745 convolve_reg.c, numa_reg.c: expanded test set | |
| 746 projection_reg.c (tests pixRowStats(), pixColumnStats()) | |
| 747 dewarptest.c: output ps and pdf files | |
| 748 writemtiff.c: simple driver to write images to a single file | |
| 749 | |
| 750 1.66 3 Aug 10 | |
| 751 More tweaks for including (or not) bounding box hints for | |
| 752 PS wrapping. Default is to write b.b., but not in functions | |
| 753 that wrap images as full pages (psio1.c, psio2.c) | |
| 754 pix4.c split in two files, and added function to identify c.c. | |
| 755 that are sufficiently similar in shape to rectangles (pix5.c) | |
| 756 Modify 2 and 4 bit setters to clip the input value so that it can | |
| 757 only affect the pixel requested (arrayaccess.c, arrayaccess,h) | |
| 758 New pseudorandom sequence functions (numafunc1.c) | |
| 759 Dewarping camera-based images using textlines (dewarp.c, prog/dewarp*) | |
| 760 Geometrical function for aggregating overlapping bounding boxes. | |
| 761 Programs to generate figures for book chapter "Document Image | |
| 762 Applications" in "Mathematical Morphology: theory and applications" | |
| 763 (see: http:/www.leptonica.org/najman-talbot-book-chapter.html) | |
| 764 (prog/livre*.c) | |
| 765 Functions that do affine and other operations in images with | |
| 766 alpha blending at edges: pix*WithAlpha(). Also do this | |
| 767 with a gamma/inverse-gamma wrapper to further reduce edge aliasing. | |
| 768 (rotate.c, scale.c, projective.c, affine.c, bilinear.c, | |
| 769 prog/alphaxform_reg.c) | |
| 770 Improved color segmentation (fixed bugs; made faster) | |
| 771 Higher order least square fits: quadratic, cubic, quartic. (pts.c) | |
| 772 Various mods for otsu binarization and the *SplitDistribution*() | |
| 773 functions (numafunc2.c, prog/otsutest2.c) | |
| 774 Control sampling in convolution output (convolve.c, prog/fpix_reg.c) | |
| 775 Morphological operations on numas (numafunc1.c, numafunc2.c, | |
| 776 prog/numa_reg.c) | |
| 777 Pix serialization wrapped so we can use pixRead(), etc on these | |
| 778 files (spixio.c, readfile.c, writefile.c) | |
| 779 Gif read/write to memory fixed (and cheated -- using files) (gifio.c) | |
| 780 New fpix and dpix accessors; contour rendering on fpix (fpix1.c, fpix2.c) | |
| 781 Various functions for linearly mapping colors and displaying arrays | |
| 782 of colors (pix4.c, blend.c, prog/rankhisto_reg.c) | |
| 783 Functions for getting approximate ranges of colors and color | |
| 784 components in an image (pix4.c, colormap.c) | |
| 785 Cleaned up windows platform and compiler defines and macros. | |
| 786 | |
| 787 1.65 5 Apr 10 | |
| 788 Added regression test utility functions for standardizing and | |
| 789 automating construction and running of regression tests. Makes the | |
| 790 golden files when the 2nd arg to the reg test is 'generate'. | |
| 791 (regutils.{c,h}) | |
| 792 Converted 22 reg tests in prog to use this; invoked with alltests_reg. | |
| 793 Goal is to put all prog/*_reg.c into this format and put a set | |
| 794 of golden files on the web. | |
| 795 Small fixes in gifio for handling streams properly. | |
| 796 New functions for shifting colors, hue invariant transforms, etc | |
| 797 (blend.c) | |
| 798 prog/dwamorph*.c: rename *1_reg.c to dwalineargen.c; others | |
| 799 converted to standard reg tests. | |
| 800 New rgb convolution functions. | |
| 801 For PS output, write all images with a bounding box hint and with | |
| 802 page numbers, which works for both embedded (e.g., in tex) and | |
| 803 full page generated PS. Once converted to pdf, this is fine | |
| 804 in all situation. | |
| 805 New functions for initialization and random insertion with pixcomp. | |
| 806 For color quantization, make the lightest color white if sufficiently | |
| 807 close; ditto for black (colorquant1.c, colorquant2.c). | |
| 808 Rank binning of 8 bpp and rgb images (numafunc2.c, pix4.c) | |
| 809 A function to rank colors by the intensity of the minimum comp (pix4.c) | |
| 810 New pixRotateBinaryNice(), rotates 1 bpp pix in such a way that | |
| 811 the shear lines aren't visible. (rotate.c) | |
| 812 New pixSaveTiledWithText(), a convenience function to append text | |
| 813 to images that are being tiled. (writefile.c) | |
| 814 Stereoscopic warping functions and stereo pair functions (warper.c) | |
| 815 Linear interpolated shear -- better than rasterop shear (shear.c) | |
| 816 Option to use higher quality chroma (U,V) sampling in jpeg (jpegio.c) | |
| 817 Rename Bmf --> L_Bmf. | |
| 818 New tests in prog: | |
| 819 alltests_reg.c alphaclean_reg.c, psio_reg.c, rankbin_reg.c, | |
| 820 rankhisto_reg.c, warpertest.c | |
| 821 | |
| 822 1.64 3 Jan 10 | |
| 823 Easy setup for standard byte processing on 8 bpp pix (pix2.c) | |
| 824 Evaluation of difference between similar images; test for | |
| 825 similar images and (compare.c) | |
| 826 Subpixel scaling, with color input and separate scale factors (pixconv.c) | |
| 827 Fix tiff header reader to get correct format (tiffio.c) | |
| 828 Enable pixDisplay() to work with i_view (windows) and with | |
| 829 xzgv and xli as well as xv; allow application to choose | |
| 830 which to use (writefile.c). | |
| 831 Use a mask to specify regions that are changed by a morphological | |
| 832 operation (morphapp.c). | |
| 833 Improve the default sharpening for scaling (scale.c) | |
| 834 Function to test for equivalence of file data (utils.c) | |
| 835 Select and read image files with embedded index (readfile.c) | |
| 836 Fix box size calculation in pixEmbedForRotation(); solution | |
| 837 provided by Brent Sundheimer. | |
| 838 New pixDisplayMultiple(), instead of calling gthumb directly; this | |
| 839 is now set up to use i_view for windows. | |
| 840 Changed criteria for determining if an image is color (colorcontent.c, | |
| 841 colorquant{1,2}.c. | |
| 842 Optional mode where the filename extension is automatically written | |
| 843 to output image files; particularly useful for windows. | |
| 844 Initialize boxa and pixa as full, with minimal placeholders. | |
| 845 Get rank valued numbers and boxes in numa and boxa. | |
| 846 Cute implementation for finding largest solid rectangle (maze.c) | |
| 847 New median cut quantization for mixed (color/gray) images (colorquant2.c) | |
| 848 Many changes to allow the library and applications be built easily | |
| 849 in windows. There is now a thorough windows readme, written by Tom | |
| 850 Powers, for doing this. The windows build information and | |
| 851 project files are now in a new vs2008 directory. | |
| 852 | |
| 853 1.63 8 Nov 09 | |
| 854 Added pixScaleToGrayFast(), a faster version with very similar quality. | |
| 855 Fixed scaleGrayLILow() to handle edge pixels more accurately | |
| 856 Text processing: | |
| 857 new text application (finditalic.c, prog/finditalic.c) for locating | |
| 858 words in italic type style. | |
| 859 Easier to add text to a pix using the bitmap font stored in | |
| 860 the font directory; see, e.g., prog/writetxt_reg.c. | |
| 861 Blending of 2 images with an alpha channel: pixBlendWithGrayMask() | |
| 862 Fixed bug in color segmentation; it now (again) works properly. | |
| 863 New utility (pixcomp.c) for handling compressed pix arrays in | |
| 864 memory; new PixComp and PixaComp structs. | |
| 865 Fast serialization of pix without compressing (pixSerializeToMemory | |
| 866 and pixDeserializeFromMemory); required serialized colormaps | |
| 867 FileI/O: new functions for reading file headers. | |
| 868 PostScript generation modernized; split psio.c into psio1.c | |
| 869 and psio2.c; added level 3 (flate) encoding. | |
| 870 new functions for reading and writing multipage tiffs, for | |
| 871 arbitrary input images. For writing, compression is lossless | |
| 872 (either g4 or zip) | |
| 873 update all I/O stub files | |
| 874 Miscellaneous: new pixaAddBorderGeneral(); new functions in pix3.c | |
| 875 for counting fg pixels and summing 8 bpp pixels by column and row; | |
| 876 new numaUniformSampling() for resampling with interpolation; | |
| 877 subpixel scaling. | |
| 878 New or improved regression tests in prog: | |
| 879 extrema_reg, pixalloc_reg, blend2_reg, rotateorth_reg, | |
| 880 ioformats_reg, colorseg_reg, pixcomp_reg, pixserial_reg, | |
| 881 writetext_reg, psioseg_reg, subpixel_reg. | |
| 882 Interface changes: | |
| 883 findFileFormat() and findFileFormatBuffer(): now returns format | |
| 884 using input ptr. The function return value is 0 if OK; 1 on error | |
| 885 rename: pixThresholdPixels() --> pixThresholdPixelSum() | |
| 886 | |
| 887 1.62 26 Jul 09 | |
| 888 Expanded composite Dwa implementation as a sequence of operations, | |
| 889 so that it now works beyond a size of 63. It's typically about 2x | |
| 890 faster than the composite rasterop implementation (with help | |
| 891 from Ankur Jain). Also use data transfer instead of data copy | |
| 892 whenever possible. Thorough tests with binmorph4_reg and binmorph5_reg. | |
| 893 New functions in colorseg.c for masking and histogramming in HSV | |
| 894 color space. | |
| 895 Treat string constants rigorously as const char*, initializing | |
| 896 to char[] if to be used as non-const, or in some cases casting | |
| 897 to char*. This avoids compiler warnings. | |
| 898 Improved color quantization using existing colormap for octcubes | |
| 899 and a new version for grayscale. This will rigorously map most | |
| 900 black and most white octcubes (rsp) to black and white | |
| 901 if they exist in the colormap. | |
| 902 Fast quantization to an existing colormap for color and grayscale. | |
| 903 Fixed some bugs; e.g., in pixAffineSampled() for 1 bpp with | |
| 904 L_BRING_IN_BLACK; reading and writing pnm for 2 and 4 bpp. | |
| 905 In pngio.c, enable compile time control over these settings: | |
| 906 converting 16 bpp --> 8 bpp on read | |
| 907 removing alpha channel on read | |
| 908 setting zlib compression on write | |
| 909 For general scaling, allow sharpening to be optional, and provided | |
| 910 faster sharpening operations. | |
| 911 Improve support for 16 bpp grayscale. | |
| 912 For scaleToGray* functions, reduce the width truncation. | |
| 913 In psio.c, new functions for converting segmented page images | |
| 914 (text and image) into level 2 PostScript. | |
| 915 Removed all implicit casting to const char*. | |
| 916 New custom pix memory allocator, designed for large pix whose | |
| 917 memory needs to be reused many times. | |
| 918 In xtractprotos, we now allow prepending an arbitrary string to | |
| 919 each prototype. | |
| 920 In environ.h, additions for MSVC to work with VC++6, including | |
| 921 prototpye strings for dll import and export (thanks to Ray Smith). | |
| 922 In colorseg.c, new functions for building HSV histograms, finding | |
| 923 peaks, and generating masks based on the peaks. | |
| 924 New or improved regression tests: | |
| 925 pixalloc_reg, binmorph4_reg, binmorph5_reg, conversion_reg, | |
| 926 scale_reg, cmapquant_reg, | |
| 927 | |
| 928 1.61 26 Apr 09 | |
| 929 New histo-based grayscale quantization: pixGrayQuantizeFromHisto(), | |
| 930 that is used in new pixQuanitzeIfFewColorsMixed(). | |
| 931 Made final fix in pixBlockconv(). No underflows; no more overflows! | |
| 932 More efficient rgb write with pnm. | |
| 933 Add proto to jpegiostub.c, allowing proper use of the stubber. | |
| 934 Fix several filter functions to use proper test on filter size; viz., | |
| 935 pixMinMaxTiles(), several functions in convolve.c. | |
| 936 Redo shear implementation to handle arbitrary angles, to handle | |
| 937 colormapped images, and to avoid the singularity at pi/2. | |
| 938 Removed both static vars from pixSaveTiled(). | |
| 939 Generalized pixRotate() to handle colormapped images, and to use | |
| 940 pixRotateBySampling() in place of the removed pixRotateEuclidean(). | |
| 941 New skew finder for full angle range, pixFindSkewOrthogonalRange(). | |
| 942 For skew detection, now allow shear about image center as well as | |
| 943 about the UL corner. | |
| 944 New rotation reg tests: rotate1_reg.c and rotate2_reg.c. | |
| 945 Better serialization format for boxaa; introduce new version numbers | |
| 946 for boxaa, pixa, and boxa, as required. | |
| 947 Proper init in boxGetGeometry(), boxaGetBoxGeometry(), and the | |
| 948 accessors in sel1.c and kernel.c. | |
| 949 Improved Numa functions in numafunc1.c and numafunc2.c; in | |
| 950 particular, numaMakeHistogramAuto() and numaGetStatsUsingHistogram(). | |
| 951 With all histo generators, make sure the start and binsize params | |
| 952 are properly set and are used. | |
| 953 Interface change: Use these parameters implicitly in | |
| 954 numaHistogramGetRankFromVal() and numaHistogramGetValFromRank(). | |
| 955 Interface change to ptaGetLinearLSF(): add 1 optional parameter. | |
| 956 In several pixaDisplay*() functions, handle colormaps properly. | |
| 957 pixafunc.c split to pixafunc1.c and pixafunc2.c. | |
| 958 New connected component selections and options in pixaSort. | |
| 959 Patch from Tony Dovgal for reading tiff rgba files. | |
| 960 Added new logical operation options for numas. | |
| 961 New pixConvertRGBToGrayMinMax() that chooses min or max of 3 components. | |
| 962 Computation of pixelwise aligned stats between multiple images | |
| 963 of the same size (e.g., video), in pix4.c. | |
| 964 Very fast binsort implemented for boxa and pixa. | |
| 965 Cleanup and rename stack, queue, heap and ptra functions: | |
| 966 all structs and typedefs start with "L_" | |
| 967 all functions start with "l" | |
| 968 Sel creation for crosses and T junctions. | |
| 969 New thresholding operations to binary; split out from adaptmap.c | |
| 970 into binarize.c. | |
| 971 Implementation of sauvola binarization, including use of pixtiling. | |
| 972 Added composite parallel union and intersection morphological operations. | |
| 973 Small changes to scaling and rotation to improve accuracy; only | |
| 974 visible on very tiny, symmetric images. | |
| 975 Implemented DPix (double precision data); useful for the mean | |
| 976 square accumulator for sauvola binarization. | |
| 977 New fast hybrid grayscale seedfill, in addition to the interative | |
| 978 version (contributed by Ankur Jain). | |
| 979 New or improved regression tests: | |
| 980 rotate1_reg, rotate2_reg, shear_reg, numa_reg, skew_reg, | |
| 981 ptra1_reg, ptra2_reg, paint_reg, smallpix_reg, pta_reg, | |
| 982 pixmem_reg, binarize_reg, grayfill_reg. | |
| 983 | |
| 984 | |
| 985 1.60 19 Jan 09 | |
| 986 Fixed bug in pixBlockconv(), introduced in 1.59, that causes | |
| 987 overflow when convolving with an image that has white (255) | |
| 988 at the edges. [quickly found by Dave Bryan] | |
| 989 Include function to display freetype fonts in a pix. | |
| 990 The files freetype.c and freetype.h are in the distribution, but are not | |
| 991 yet linked into the library. This is contributed by Tony Dovgal, | |
| 992 and this version works only for MSVC. | |
| 993 Found that the problems with binary compression in giflib are fixed | |
| 994 with giflib 4.1.6. | |
| 995 | |
| 996 1.59 11 Jan 09 | |
| 997 Lots of changes since 1.58. | |
| 998 New files: affinecompose.c, ptra.c, warper.c, watershed.{h,c}. | |
| 999 Split: boxfunc.c --> (boxfunc1.c, boxfunc2.c, boxfunc3.c) | |
| 1000 Improved connected component filtering, with logical functions | |
| 1001 applied to indicator arrays (pix4.c, pixafunc.c, numafunc1.c). | |
| 1002 Function to determine if an image can be quantized nicely with | |
| 1003 only a few colors (colorcontent.c, pixconv.c). | |
| 1004 New gray seed-filling functions (seedfill.c, seedfilllow.c). | |
| 1005 Fixed bugs in tophats and hdome, due to misuse of pixSubtractGray() | |
| 1006 (morphapp.c). | |
| 1007 New function for improving contrast (adaptmap.c) | |
| 1008 Watershed transform (still slightly buggy) (watershed.c,h). | |
| 1009 Fast random access into a pix using line pointers (pix1.c, arrayaccess.*) | |
| 1010 Conversions of colormaps from gray to color and v.v. (colormap.c) | |
| 1011 Seedfill function that applies an upper limit to the fill | |
| 1012 distance (seedfill.c) | |
| 1013 New function for warping images with random harmonic distortion | |
| 1014 (with help from Tony Dovgal). | |
| 1015 New generic ptr array utility: all O(1) functions of a stack plus | |
| 1016 random replace, insert and delete (ptra.c). | |
| 1017 Simple functions for colorizing a grayscale image with an arbitrary | |
| 1018 color (pixconv.c, colormap.c) | |
| 1019 Flexible affine transforms (translation, scale, rotation) on pta | |
| 1020 and boxa (affinecompose.c). | |
| 1021 Clipping of foreground (both exact and approximate) starting from | |
| 1022 within a rectangular region of the image (pix4.c) | |
| 1023 Blending a colored rectangle over an image (pix2.c, boxfunc3.c) | |
| 1024 Generation of rectangle covering of mask components (boxfunc3.c). | |
| 1025 Block convolution using tiles (for very large images) (convolve.c) | |
| 1026 New or improved regression tests in prog: | |
| 1027 locminmax_reg, lowaccess_reg, grayfill_reg, adaptnorm_reg, | |
| 1028 xformbox_reg, warper_reg, cmapquant_reg, compfilter_reg, | |
| 1029 splitcomp_reg, affine_reg, bilinear_reg, projective_reg | |
| 1030 Acknowledgments: | |
| 1031 (1) Big thanks to Tony Dovgal for helping with the warping | |
| 1032 (e.g. for captcha). Tony also provided an implementation that | |
| 1033 allows rendering truetype fonts into a Pix on windows. | |
| 1034 This is not yet incorporated, because it opens a huge | |
| 1035 "can of worms," which is OK if you're going fishing but | |
| 1036 maybe not if you're trying to support leptonica on many platforms. | |
| 1037 TBD. | |
| 1038 (2) David Shao provided a libtools build system that includes | |
| 1039 building the prog directory! I believe this will work, but it | |
| 1040 is is not yet included because of problems I continue to have | |
| 1041 with macros in version 2.61 of gnu libtools. | |
| 1042 (3) Steve Rogers is working on a MSVC build for the prog directory. | |
| 1043 I hope to have this available for 1.60. | |
| 1044 | |
| 1045 1.58 27 Sept 08 | |
| 1046 Added serialization for numaa. | |
| 1047 New octree quantizer pixOctreeQuantByPopulation(), that uses a | |
| 1048 mixture of level2 and level4 octcubes. Renamed many functions | |
| 1049 in colorquant1.c, and arranged/documented them more carefully. | |
| 1050 Revised documentation in leptonica.org/papers/colorquant.pdf. | |
| 1051 Simplified customization for I/O libraries and fmemopen() in environ.h. | |
| 1052 Fixed bugs in colormap.c, viewfiles.c, pixarith.c. | |
| 1053 Verified Adam Langley's jbig2enc (encoding jbig2 and generating pdf from | |
| 1054 these encoded files) works properly with the current version -- see | |
| 1055 Section 24 of README.html for usage and build hints. | |
| 1056 New separable convolution; let pixConvolve() take 8, 16 and 32 bpp input. | |
| 1057 New floating pt pix (FPix) utility, which allows convolution and | |
| 1058 arithmetic operations on FPix; also interconversion to Pix. | |
| 1059 Ability to read headers on multipage tiff. | |
| 1060 More robust updown text detection in flipdetect.c. | |
| 1061 Use of sharpening to improve scaling when the scale factor is near 1.0. | |
| 1062 See prog/fpix_reg.c for regression test and usage. | |
| 1063 See prog/blend_reg.c for blending regression test, with new functions. | |
| 1064 | |
| 1065 1.57 13 Jul 08 | |
| 1066 New Debian distribution for 1.57 (thanks to Jeff Breidenbach). | |
| 1067 Improved the Otsu-type approach for finding a binarization threshold, | |
| 1068 by choosing the min in the histogram subject to constraints | |
| 1069 (numafunc2.c, adaptmap.c) | |
| 1070 New function pixSeedspread() in seedfill.c, similar to a voronoi tiling, | |
| 1071 that is used for adaptive thresholding in pixThresholdSpreadNorm(). | |
| 1072 In the process, fixed a small bug in pixDistanceFunction(). | |
| 1073 (The approach was suggested by Ray Smith, and uses the fast | |
| 1074 Vincent distance function method to expand each seed.) | |
| 1075 Generalized the functions in kernel.c to use float weights | |
| 1076 for general convolution (Version 2 for kernel), and added | |
| 1077 gaussian kernel generation. | |
| 1078 Put all jpeg header functions into jpegio.c, where they belong. | |
| 1079 Fixed bugs in pixaInsertPix() and pixaRemovePix(). | |
| 1080 Added read/write serialization for Numaa. | |
| 1081 New functions for comparing two images using bounding boxes (classapp.c). | |
| 1082 | |
| 1083 1.56 12 May 08 | |
| 1084 Added several new 1d barcode decoders. The functional interface | |
| 1085 is still in flux. | |
| 1086 Autoconf! To get this working, it was necessary to: determine and | |
| 1087 set the endian flag; select which libraries are to be linked; | |
| 1088 determine if stream-based memory I/O is enabled. | |
| 1089 This required a major cleanup of the include files, minimizing | |
| 1090 dependencies on external library header files, and getting everything | |
| 1091 to work with both autoconf (HAVE_CONFIG_H) and the old | |
| 1092 customized makefile. Customization is now all in environ.h. | |
| 1093 pixSaveTiled(): a new way to display tiled images. | |
| 1094 pixtiling.c: interface for splitting an image into a set of | |
| 1095 overlapping tiles, using mirrored borders for tiles touching the | |
| 1096 image boundary. | |
| 1097 pixBlendHardLight(): new blending mode with nice visual effects. | |
| 1098 pixColorFraction(): determines extent of color in image | |
| 1099 Both octree and median-cut color quantization check first if | |
| 1100 image is essentially grayscale; improvements to both algorithms. | |
| 1101 box*TransformOrdered(): general sequence of linear transforms. | |
| 1102 colorquant_reg.c, xformbox_reg.c, hardlight_reg.c: new regr tests. | |
| 1103 | |
| 1104 1.55 16 Mar 08 | |
| 1105 New functions for combining two images arbitrarily through a mask, | |
| 1106 including mirrored tiling (pix3.c) | |
| 1107 Modify pixSetMasked*() to work on all images (pix3.c) | |
| 1108 New functions for extracting masked regions such as pixClipMasked() | |
| 1109 (pix3.c) and pixMaskConnComp() and pixMaskBoxa() (boxfunc.c). | |
| 1110 New functions to separate fg from bg (pix3.c), one of which is supported | |
| 1111 by numaSplitDistribution (numafunc.c). | |
| 1112 Modify sobel edge detector to take another parameter (edge.c) | |
| 1113 Support for 4 bpp cmyk color space in jpeg (jpegio.c) | |
| 1114 Modified median cut color quantization (colorquant2.c) | |
| 1115 Renamed colorquant.c (for octree quant) --> colorquant1.c. | |
| 1116 Absorbed conncomp.h and colorquant.h into specific files that | |
| 1117 depend on them (colorquant1.c, conncomp.c, pix.h) | |
| 1118 General convolution with utility for building kernels | |
| 1119 (convolve.c, kernel.c) | |
| 1120 Initial implementation of 1D barcode reader. So far, we just have the | |
| 1121 signal processing to locate barcodes on a page, deskew them, and | |
| 1122 find the bar widths, along with decoders for two formats. | |
| 1123 (readbarcode.*, prog/barcodetest.c) | |
| 1124 Made the default to stub out read/write for non-tiff image formats | |
| 1125 to memory; it doesn't work on Macs & they were complaining (*io.c) | |
| 1126 Include MSVC project files for building leptonlib under | |
| 1127 windows (leptonlib.*) | |
| 1128 | |
| 1129 1.54 21 Jan 08 | |
| 1130 Histogram equalization (enhance.c). | |
| 1131 New functions for pixaa: serialization (r/w), creation | |
| 1132 from pixa, and a tiled/scaled display into a pixa (pixabasic.c, | |
| 1133 pixafunc.c). | |
| 1134 Read/write of tiff to memory (instead of a file, using | |
| 1135 the TIFFClientOpen() callback interface), contributed by Adam | |
| 1136 Langley (tiffio.c, testing in prog/ioformats_reg). | |
| 1137 Improved image statistics functions, both over tiles and | |
| 1138 through a mask over the entire image. Added standard deviation | |
| 1139 and variance; enable statistics for rgb and colormapped images, | |
| 1140 in addition to 8 bpp grayscale (pix3.c). New function to | |
| 1141 extract rgb components from a colormapped image (pix2.c). | |
| 1142 Fix pixWriteStringPS() to work with all depths and colormap (psio.c) | |
| 1143 Enable all non-tiff formats to also write and read to/from memory (*io.c) | |
| 1144 Added support for read/write to gif, contributed by Tony Dovgal | |
| 1145 (gifio.c, gifiostub.c, imageio.h). See Makefile for instructions | |
| 1146 on enabling this. | |
| 1147 | |
| 1148 1.53 29 Dec 07 | |
| 1149 Add 4th arg to pixDistanceFunction() to specify b.c., | |
| 1150 and fixed output to 16 bpp grayscale pix. (seedfill*.c) | |
| 1151 New un-normalized block grayscale convolution (convolve.c) | |
| 1152 Fixed bug in getLogBase2(), so that pixMaxDynamicRange() works | |
| 1153 properly. This is useful for displaying a 16 bpp pix as | |
| 1154 8 bpp (pixarith.c). New function for getting rank val for | |
| 1155 rgb over a region specified by a mask (pix3.c). New function | |
| 1156 for extremem values of rgb colormap (colormap.c). New | |
| 1157 function pixGlobalNormNoSatRGB(), a variant of pixGlobalNormRGB() | |
| 1158 that prevents saturation for any component above a specified | |
| 1159 rank value (adaptmap.c). Added mechanism for memory | |
| 1160 management of pix (pix1.c). Added selective morphology by | |
| 1161 region given by a mask (morphapp.c). Fixed prototype extracdtion | |
| 1162 to work properly with function prototypes as args; released | |
| 1163 version 1.2 of xtractprotos (parseprotos.c, xtractprotos.c). | |
| 1164 Add a boxa field for pixaa, along with serialization (pixabasic.c), | |
| 1165 and modified display of pixaa to include this (pixafunc.c). | |
| 1166 Coalesced the version numbers for pixa, pixaa, boxa, and boxaa | |
| 1167 serialization (pix.h). | |
| 1168 New progs: modifyhuesat displays modified versions on a grid; | |
| 1169 textlinemask shows simple methods for extracting textline masks. | |
| 1170 | |
| 1171 1.52 25 Nov 07 | |
| 1172 Implemented Breuel's whitespace partitioning algorithm (partition.c). | |
| 1173 Generalized pixColorMagnitude() to allow different methods | |
| 1174 for computing the color amount of a pixel (colorcontent.c). | |
| 1175 New methods for computing overlap of boxes (boxfunc.c). | |
| 1176 New methods for painting (solid) and drawing (outline) of boxes, | |
| 1177 replacing boxaDisplay() with pixDrawBoxa*() and pixPaintBoxa*() | |
| 1178 (pix2.c, boxfunc.c). | |
| 1179 Ray Smith fixed bug in the distance function (seedfilllow.c). | |
| 1180 For pixConvertTo1() and pixConvertTo8(), treat input pixs as a | |
| 1181 const and never return a clone or altered cmap (pixconv.c). | |
| 1182 Make pixGlobalNormalRGB() crash-proof (adaptmap.c). | |
| 1183 Tony Dovgal added ability to read jpeg comment (jpegio.c). | |
| 1184 | |
| 1185 1.51 21 Oct 07 | |
| 1186 Improved histogramming of gray and color images (pix3.c) | |
| 1187 Histogram statistics (numafunc.c). Better handling of tiff | |
| 1188 formats, testing rle and packbits output and improving | |
| 1189 level 2 postscript conversion efficiency (readfile.c, psio.c). | |
| 1190 Test program for r/w and display of Sels (prog/seliotest.c). | |
| 1191 Use endiantest to determine automatically which flags to set | |
| 1192 when compiling for big- or little-endians (endiantest.c) | |
| 1193 Compute a color magnitude for each rgb pixel (colorcontent.c). | |
| 1194 Allow separate modification of hue and saturation (enhance.c). | |
| 1195 Global transform of color image for arbitrary white point (adaptmap.c). | |
| 1196 | |
| 1197 1.50 07 Oct 07 | |
| 1198 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1199 NOTE CAREFULLY: The image format enum in imageio.h has | |
| 1200 changed. This is an ABI change, and it requires | |
| 1201 recompilation of the library. | |
| 1202 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1203 Suggestions by David Bryan again resulted in several changes, | |
| 1204 including improvements to the dwa generating functions and interfaces. | |
| 1205 Major improvements for dwa code generation, including an | |
| 1206 optional filename for the output code, adding function prototypes | |
| 1207 to the code so it can easily be linked outside the library. | |
| 1208 Addition of 2-way composable dwa functions for bricks, with | |
| 1209 code addition to the library, and a new interpreter for dwa | |
| 1210 composable brick sequences (fmorphauto.c, fhmtauto.c, | |
| 1211 morphtemplate1.c, hmttemplate1.c, morphdwa.c, dwacomb*.2.c, morphseq.c) | |
| 1212 Exhaustively tested in six programs (prog/binmorph*_reg, | |
| 1213 prog/dwamorph*_reg). | |
| 1214 New input modes for Sels, from both color bitmap editors | |
| 1215 and a simple file format (sel1.c). | |
| 1216 Better Sel generation functions in sel2.c, including combs for | |
| 1217 composable brick operations and linear bricks for comparison. | |
| 1218 Removed unnecessary copies for more efficient border add'n & removal. | |
| 1219 Added RLE basline enc/dec for tiff. | |
| 1220 Binary morphology documentation on the web page updated for these | |
| 1221 changes/additions. | |
| 1222 William Rucklidge unrolled inner loops and added LUTs to | |
| 1223 speed up several more functions, including correlation | |
| 1224 (correlscore.c), centroid calculation (morphapp.c), | |
| 1225 2x linear interp grayscale scanning (scalelow.c), | |
| 1226 thresholding to binary (grayquantlow.c), and removal | |
| 1227 of colormaps to gray (pixconv.c). | |
| 1228 | |
| 1229 1.49 23 Sep 07 | |
| 1230 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1231 NOTE CAREFULLY: The image format enum in imageio.h has | |
| 1232 changed. This is an ABI change, and it requires | |
| 1233 recompilation of the library. | |
| 1234 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1235 Suggestions by David Bryan resulted in several changes. | |
| 1236 pixUnpackBinary() unpacks to all depths. | |
| 1237 Can now write and read tiff in LZW and ZIP (gzip) formats. | |
| 1238 These, like uncompressed tiff, work on all bit depths. | |
| 1239 Also enabled pnm 16 bpp r/w, both non-ascii and ascii. | |
| 1240 ioFormatTest() now has better coverage and clarity; this is | |
| 1241 used in prog/ioformats_reg.c. | |
| 1242 Rewrite of morphautogen code to implement opening and closing atomically. | |
| 1243 Cleaner interaction with new text templates (fmorphauto.c, | |
| 1244 fhmtauto.c, sarray.c, *template*.txt,). | |
| 1245 More regression testing (e.g., binmorph1_reg.c, binmorph3_reg.c). | |
| 1246 | |
| 1247 1.48 30 Aug 07 | |
| 1248 William Rucklidge sped up pixCorrelationScore() by in-lining | |
| 1249 all bit operations (jbclass.c). | |
| 1250 Generalized rank filtering from 8 bpp to color (rank.c). | |
| 1251 Fixed many functions that take a dest pix so that they don't fail if | |
| 1252 the dimensions or depth are not consistent with the src pix. | |
| 1253 The underlying change for this is to pixCopy() (pix1.c). | |
| 1254 Improved display of Sel as a pix; added selaDisplayInPix() to | |
| 1255 display all Sels in a Sela, orthogonal rotations of Sels (sel1.c). | |
| 1256 New functions for thinning and thickening while preserving connectivity | |
| 1257 and avoiding both free end erosion and dendritic cruft (ccthin.c, | |
| 1258 prog/ccthin1_reg.c, prog/ccthin2_reg.c). | |
| 1259 New function pixaDisplayTiledInRows() for compactly tiling pix | |
| 1260 in a pixa, plus documentation of different existing methods. (pixafunc.c) | |
| 1261 | |
| 1262 1.47 22 Jul 07 | |
| 1263 New brick rank order filter (rank.c, prog/ranktest.c, prog/rank_reg.c). | |
| 1264 Use mirror reflection b.c. to avoid special processing at | |
| 1265 boundaries (pix2.c). Simple sobel edge detector (edge.c). | |
| 1266 Utility for assempling level 2 compressed images in PostScript | |
| 1267 (psio.c, prog/convertfilestops.c). Enable read/write of 16 bpp, | |
| 1268 grayscale tiff (tiffio.c, pix2.c). | |
| 1269 New function for finding the number of c.c., which is a bit | |
| 1270 faster than finding the b.b. or the component images (conncomp.c) | |
| 1271 New functions for finding local extrema in grayscale image (seedfill.c) | |
| 1272 | |
| 1273 1.46 28 Jun 07 | |
| 1274 Added interpreted mode for color morphology (morphseq.c). | |
| 1275 In functions, make effort to consistently do early initialization | |
| 1276 of ptrs to objects returned on the heap. This is to try to | |
| 1277 avoid letting functions return uninitialized objects, even if | |
| 1278 the return early because of bad input. | |
| 1279 Split pixa.c into 2 files; revised the component filtering | |
| 1280 in both pixafunc.c and boxfunc.c. Added component filtering | |
| 1281 for "thin" components. | |
| 1282 Added subsampling functions for numa and pta. | |
| 1283 Word segmentation now works at both full and half resolution. | |
| 1284 Better methods for displaying and tiling (for debugging), | |
| 1285 using pixDisplayWrite(), pixaReadFiles() and pixaDisplayTiledAndScaled(). | |
| 1286 | |
| 1287 1.45 27 May 07 | |
| 1288 Further improvements of orientation and mirror flip detection | |
| 1289 (flipdetect.c). Added 2x rank downscaling and general integer | |
| 1290 replicative expansion (scale.c). Simplified interface for | |
| 1291 averaging, and included tiled averaging, which is yet another | |
| 1292 integer reduction scaling function (pix3.c). | |
| 1293 | |
| 1294 1.44 1 May 07 | |
| 1295 Split pix2.c into (pix2.c, pix3.c), with basic housekeeping | |
| 1296 functions (e.g., ops on borders, padding) in pix2.c. | |
| 1297 Split numarray.c into (numabasic.c, numafunc.c), with | |
| 1298 constructors and accessors in numabasic.c. Added a number | |
| 1299 of histogram, rank value and interpolation functions to numafunc.c. | |
| 1300 Add rms and rank difference comparison functions (compare.c). | |
| 1301 Separated orientation and mirror flip detection; fixed the latter | |
| 1302 (flipdetect.c). | |
| 1303 | |
| 1304 1.43 24 Mar 07 | |
| 1305 New and fixed functions for handling word boxes (classapp.c) | |
| 1306 More consistent use of L_* flags (e.g., sarray.h, morph.h) | |
| 1307 Morphology on color images (gray ops on each component) (colormorph.c) | |
| 1308 New methods for generating sels; we now have five methods in | |
| 1309 sel1.c and 3 others in selgen.c. Also a function that | |
| 1310 displays Sels as an image, for use in documentation (sel1.c) | |
| 1311 New high-level converters, such as pixConvertTo8(), pixConvertTo32(), | |
| 1312 pixConvertLossless() (pixconv.c) | |
| 1313 Identify regression tests, and rename them as prog/*_reg.c. | |
| 1314 Complete revision of plotting package (gplot.c) | |
| 1315 New functions for comparing pix (compare.c) | |
| 1316 New morph application functions, such as the ability to run a | |
| 1317 morph sequence separately on selected c.c. in an image, and | |
| 1318 a fast, quasi-tophat function (morphapp.c) | |
| 1319 Cleanup and new interfaces to border representations of c.c. (ccbord.c) | |
| 1320 Page segmentation application (pageseg.c) | |
| 1321 Better serialization with version control for all major structs. | |
| 1322 Morphological brick operations with 2-way composite sels (morph.c) | |
| 1323 | |
| 1324 1.42 26 Dec 06 | |
| 1325 New sorting functions, including 2-d sorting, for boxa and pixa, | |
| 1326 and functions that sort by index (e.g., pixa --> pixa and | |
| 1327 for 2d, pixa --> pixaa; ditto for boxa). | |
| 1328 New accessors for pix dimensions. A new strtokSafe() to | |
| 1329 substitute for strtok_r (utils.c). | |
| 1330 Page flip detection, using both rasterop and dwa morphology | |
| 1331 (flipdetect.c), with dwa generation (fliphmtgen.c) and testing | |
| 1332 (prog/fliptest.c). | |
| 1333 Increased basic sels from 42 to 52 (sel2.c). | |
| 1334 Better high-level interfaces for binary morphology with | |
| 1335 brick (separable) sels, both for rasterop (morph.c) and for | |
| 1336 dwa (morphdwa.c); fully tested for both asymmetric and | |
| 1337 symmetric b.c. (prog/morphtest3.c). Faster area mapping | |
| 1338 reduction for power-of-2 scaling. | |
| 1339 | |
| 1340 1.41 5 Nov 06 | |
| 1341 Simplified morph enums, removing all unused ones (morph.h). | |
| 1342 Added new high-level interfaces for adaptive mapping (adaptmap.c). | |
| 1343 New method to extract color content of images (colorcontent.c). | |
| 1344 New method to generate sels from text strings, and to identify | |
| 1345 roman text that is not properly oriented (thanks to Adam Langley). | |
| 1346 Fast grayscale min/max (rank) scale reduction by integer factors. | |
| 1347 New accessors for box and sel, that should be used when possible. | |
| 1348 Thresholding grayscale mask by bandpass (grayquant.c). | |
| 1349 Use of strtok_r() for thread safety. | |
| 1350 | |
| 1351 1.40 15 Oct 06 | |
| 1352 Fixed xtractprotos for cygwin. Minor fixes and improved documentation | |
| 1353 (baseline.c, conncomp.c, pix2.c, morphseq.c, pts.c, numarray.c, | |
| 1354 utils.c, skew.c). Add ability to quantize an rgb image to a | |
| 1355 specified colormap (colorquant.c); tested in prog/cmapquanttest.c. | |
| 1356 Modifications to allow conditional compilation on MS VC++, | |
| 1357 and to allow I/O calls to be stubbed out (new files: *iostub.c, | |
| 1358 zlibmemstub.c, pstdint.h, arrayaccess.h.ms60) | |
| 1359 | |
| 1360 1.39 31 Aug 06 | |
| 1361 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1362 NOTE CAREFULLY: There has been an interface change to make | |
| 1363 affine, bilinear and projective transforms more general. | |
| 1364 The implementation has been changed to allow them to handle | |
| 1365 all image types and to make them faster (esp. with both sampled | |
| 1366 and interpolated mapping on color images). | |
| 1367 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1368 Added prog/Makefile.mingw to build executables. This is still | |
| 1369 in a relatively raw state. It is necessary to download | |
| 1370 gnuwin32 packages for 4 libraries (jpeg, png, zlib, tiff) | |
| 1371 to link with leptonlib and the main, and I still have not | |
| 1372 been able to build static executables (they require jpeg2b.dll, etc.). | |
| 1373 | |
| 1374 1.38 8 Aug 06 | |
| 1375 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1376 NOTE CAREFULLY: There has been an interface change to both | |
| 1377 simplify and generalize the grayscale morphology operations: | |
| 1378 pixErodeGray(), pixDilateGray(), pixOpenGray(), | |
| 1379 pixCloseGray(), pixTophat() and pixMorphGradient(). | |
| 1380 The prototypes are not changed; old code will compile, but | |
| 1381 it will be wrong! The old interface had a size and a type | |
| 1382 (horizontal, vertical, square). The new interface takes | |
| 1383 horizontal and vertical Sel dimensions. | |
| 1384 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 1385 For cross-compilation to make windows programs, you can use | |
| 1386 src/Makefile.mingw to make a windows version of the library. | |
| 1387 6x scale-to-gray function donated by Alberto Accomazzi. | |
| 1388 Interpreter added for sequence of grayscale morphological | |
| 1389 operations, including the tophat (morphseq.c). | |
| 1390 Pixacc container added to simplify the interface | |
| 1391 for accumulator arithmetic using Pix. | |
| 1392 Removed fmorph.c and fmorphlow.c from the library. These are | |
| 1393 very limited and were deprecated in favor of fmorphauto(), which | |
| 1394 autogens the code from (nearly) any Sel. | |
| 1395 Fixed some of the gray morphology operations, which had errors | |
| 1396 on the boundary. All gray morph ops should now be rigorously | |
| 1397 OK (graymorph.c). For testing of graymorph dualities, the | |
| 1398 the graymorph interpreter, etc., see prog/morphgraytest.c. | |
| 1399 | |
| 1400 1.37 10 Jul 06 | |
| 1401 [After v.36 was released, Jeff Breidenbach built a Debian | |
| 1402 distribution of Leptonica based on v.36, and you can now get Leptonica | |
| 1403 as a Debian package. Use "apt-cache search leptonica" to see | |
| 1404 what is available.] The libraries are now combined into a single | |
| 1405 library (liblept.a, liblept.so) and the function prototypes are | |
| 1406 also in a single file (leptprotos.h). cextract was found not | |
| 1407 to work on recent versions of linux that support 64 bit data types, | |
| 1408 and it is no longer distributed with leptonica. Instead, I wrote | |
| 1409 a prototype extractor in leptonica (xtractprotos). When you | |
| 1410 'make allprotos', it now uses this program. The shared libraries | |
| 1411 now have major and minor numbers corresponding to the version. | |
| 1412 | |
| 1413 1.36 17 Jun 06 | |
| 1414 Line graphics generation (graphics.c) reorganized; separated out pta | |
| 1415 generation from rendering. Can now render with alpha blending. | |
| 1416 Examples of use are given in prog/graphicstest.c. | |
| 1417 Sort functions for basic geometrical objects now have the option | |
| 1418 of returning a numa giving the sort order on the original array. | |
| 1419 The pixa sort can sort with either clones or copies of the pix. | |
| 1420 | |
| 1421 1.35 21 May 06 | |
| 1422 The efficiency of the multipage jbig unsupervised classifier is | |
| 1423 significantly improved due to a NumaHash struture implemented | |
| 1424 by Adam Langley. Functions for computing runlength in 1 bpp | |
| 1425 images have been added. | |
| 1426 | |
| 1427 1.34 7 May 06 | |
| 1428 Completely rewrote the jbig unsupervised classifier. | |
| 1429 It now works on multiple pages, and is more accurate in performing | |
| 1430 visually lossless substitutions. You can classify by connected | |
| 1431 components, characters, or words. The old data structures | |
| 1432 and interfaces have been removed. New unpackers from 1 to 2 and | |
| 1433 1 to 4 bpp, with and without colormaps in the dest. | |
| 1434 | |
| 1435 1.33 18 Mar 06 | |
| 1436 Generalized color snap to have different src and target colors, | |
| 1437 and to include colormaps (blend.c). Distribute into root directory | |
| 1438 that specifies the version number (e.g., 1.33). Add color | |
| 1439 space conversion between rgb and hsv. Re-bundle thresholding | |
| 1440 code from (binarize*.c, dibitize*.c) to grayquant*.c. | |
| 1441 pixThreshold8() now also quantizes 8 bpp --> 8 bpp. | |
| 1442 High-level pixRotate() that optionally expands image sufficiently | |
| 1443 so that no pixels are lost in any sequence of rotations (rotate.c). | |
| 1444 Generalize shear to specify color of pixels brought in, including | |
| 1445 for in-place operation (shear.c, rotateshear.c). Faster version of | |
| 1446 color rotation by area mapping, both about center and about UL corner. | |
| 1447 You can now use the standard color rotator (pixRotateAM) and get | |
| 1448 nearly the same speed as with the "Fast" one. | |
| 1449 | |
| 1450 1.32 4 Feb 06 | |
| 1451 Ability to specify a sequence of binary morphological | |
| 1452 (& binary reduction/expansion) operations in a single | |
| 1453 function (morphseq.c). Fast downscaling combined with conversion | |
| 1454 from rbg to gray and to binary (scale.c). Utility for | |
| 1455 segmenting images by color (colorseg.c). | |
| 1456 | |
| 1457 1.31 7 Jan 06 | |
| 1458 Remove more complicated functions that threshold to 2 bpp, | |
| 1459 retaining the simplest interface. Retest all thresholding and | |
| 1460 dithering. Add "ascii" write of PNM. Improve graphics writing | |
| 1461 of lines; generalize to colormaps. New colorization functions | |
| 1462 (paintcmap.c, blend.c). | |
| 1463 | |
| 1464 1.30 22 Dec 05 | |
| 1465 Remove most instances of fprintf(stderr, ...), except within | |
| 1466 DEBUG or encapsulated in error, warning or info macros. | |
| 1467 As a result, there is no output to stderr if NO_CONSOLE_IO is defined. | |
| 1468 Adaptive mapping to make bg uniform (adaptmap.c). A few bug fixes. | |
| 1469 New PostScript output functions for embedding PS files | |
| 1470 (prog/converttops). Generalized some image enhancement functions. | |
| 1471 New functions for generating hit-miss sels. | |
| 1472 | |
| 1473 1.29 12 Nov 05 | |
| 1474 More flexible blending of two images, with and without colormaps | |
| 1475 (see blend.c). Painting colormapped images through masks, etc | |
| 1476 (see paintcmap.c). More flexible interface for gamma and | |
| 1477 contrast enhancement (see enhance.c). | |
| 1478 | |
| 1479 1.28 8 Oct 05 | |
| 1480 Removed all pix colormaps for 1 bpp. Allow programmatic resetting | |
| 1481 of binary morphology boundary conditions. Added (yet) another | |
| 1482 simple octcube color quantizer. New colormap operations. | |
| 1483 | |
| 1484 1.27 24 Sep 05 | |
| 1485 Renamed many of the enums and typedefs to avoid namespace | |
| 1486 collisions. This includes structs and typedefs for BMP. | |
| 1487 Interface change to pixClipRectangle(); apologies to everyone | |
| 1488 whose code is broken by these changes -- I hope it's worth it. | |
| 1489 Removed colormap.h; simplified all colormap usage, hiding details | |
| 1490 from all but a few colormap functions. Am now saving file format | |
| 1491 in the pix when an image is read, and can by default write | |
| 1492 out in this format. Resolution info added for jpeg and png. | |
| 1493 Added L_INFO* macros and l_info* fctns for printing | |
| 1494 (e.g., debugging) info. Suggestions and code kindly | |
| 1495 supplied by Dave Bryan, who helped solve compatibility issues | |
| 1496 with MINGW32 (e.g., in timing and directory functions). | |
| 1497 Added some blending and linear TRC functions. | |
| 1498 Generalized pixEqual() to include all cases with and without | |
| 1499 colormaps. New regression tests in prog: ioformats, equaltest. | |
| 1500 | |
| 1501 1.26 24 Jul 05 | |
| 1502 Generalized affine pointwise to do interpolation as well as | |
| 1503 sampling. For both projective and bilinear transforms, | |
| 1504 implemented using both sampling and interpolation. | |
| 1505 Added function to remove keystoning by computing the necessary | |
| 1506 projective transform and doing it. Also find baselines in text images. | |
| 1507 Added downscaling using accurate area-mapping over subpixels. | |
| 1508 | |
| 1509 1.25 25 Jun 05 | |
| 1510 Better endian conversion fctns for 2 and 4 byte words. | |
| 1511 Remove colormaps before converting by thresholds. | |
| 1512 Added functions to read header parameters for png and tiff. | |
| 1513 | |
| 1514 1.24 5 Jun 05 | |
| 1515 Added image splitting to allow printing in tiles (as several pages). | |
| 1516 Added new octree quantization function to generate 4 and 8 bpp | |
| 1517 colormapped output (not dithered). Fixed bmp resolution. | |
| 1518 Added new flag for colormap removal (using dest depth based on | |
| 1519 src colormap). Added I/O tests (prog/ioformats.c) | |
| 1520 | |
| 1521 1.23 10 Apr 05 | |
| 1522 Added thresholding from 8 bpp to 2 and 4 bpp, allowing specification | |
| 1523 of both the number of output levels and whether or not a colormap | |
| 1524 is made. | |
| 1525 | |
| 1526 1.22 27 Mar 05 | |
| 1527 Add pointer queue facility. To demonstrate it, you can now | |
| 1528 generate a binary maze using a cellular automaton and find | |
| 1529 the shortest path between two points in the maze. Add heap | |
| 1530 of pointers (keyed on the first field), which is used to | |
| 1531 implement a priority queue. This is applied to search for | |
| 1532 a "least cost" path on a grayscale image (a generalization | |
| 1533 of a binary maze). | |
| 1534 | |
| 1535 1.21 28 Feb 05 | |
| 1536 Read/write of colormaps to file. For gplot, add a new | |
| 1537 latex output terminal. Bring ptrs into 21st century by | |
| 1538 including stdint.h, and using uintptr_t for the ptr address | |
| 1539 arithmetic in arrayaccess.*. This seems to be OK back to | |
| 1540 RH 7.0, but if you run into trouble with an earlier | |
| 1541 C compiler, let me know. Also, use enums for global | |
| 1542 constants whenever possible, and qualify named constants | |
| 1543 (e.g., ADD --> ARITH_ADD, HORIZ --> MORPH_HORIZ) to avoid | |
| 1544 possible interactions with other libraries. | |
| 1545 | |
| 1546 1.20 31 Jan 05 | |
| 1547 Speed up of tiffio and pngio with byte swap generating new pix. | |
| 1548 In textops.c, ability to split string into paragraphs, | |
| 1549 in preparation for more general typesetting. | |
| 1550 Automatic hit-miss Sel generation for pattern matching. | |
| 1551 Fast downscaling using a lowpass filter and subsampling. | |
| 1552 Generalization of several grayscale and color operations | |
| 1553 to work on colormapped images. Improved scale-to-gray and | |
| 1554 scaling reduction operations to be antialiased for best results. | |
| 1555 | |
| 1556 1.19 30 Nov 04 | |
| 1557 Additions to fileIO: (1) new jpeg reading options, such as | |
| 1558 returning warnings and scaled raster; (2) ability to write | |
| 1559 custom tiff flags. Better tiling functions. | |
| 1560 Edge extraction, both with grayscale morphology | |
| 1561 and clipped convolution filters. More general painting | |
| 1562 through a binary mask: pixSetMaskedGeneral(). | |
| 1563 Unpacking from binary to 8, 16 and 32 bpp. Thresholding | |
| 1564 and dithering from 8 bpp to 2 bpp ("dibitization"). New bitmap | |
| 1565 font facility, using a single rendered font in a variety of | |
| 1566 sizes: allows painting the text on an image (binary, gray, RGB). | |
| 1567 (People have asked for the ability to write text on images). | |
| 1568 | |
| 1569 1.18 25 Aug 04 | |
| 1570 Changed typedefs of built-in types to avoid possible conflicts. | |
| 1571 Cleaned up and tested all programs in the prog directory. | |
| 1572 Simplified and fixed the pixSetMasked() and pixCombineMasked() | |
| 1573 functions. | |
| 1574 | |
| 1575 1.17 31 May 04 | |
| 1576 Implemented distance function for 16 bpp. We can now generate | |
| 1577 out 16 bpp PNG. Simple programs for generating PS from a | |
| 1578 directory of g4tiff or jpeg images. Changed implementation of | |
| 1579 erosion to allow either asymmetric or symmetric boundary conditions. | |
| 1580 The distinction is described on the binary morphology web page. | |
| 1581 Allow read/write of multipage TIFF files. Implemented | |
| 1582 read/write of PNM files. | |
| 1583 | |
| 1584 1.16 31 Mar 04 | |
| 1585 New depth conversion functions, improved conversion to false color, | |
| 1586 new contour rendering (onto 1 bpp or onto the src grayscale image), | |
| 1587 new orthogonal rotations, better interface for doing arithmetic | |
| 1588 on 2-d arrays using a pix, improved distance function. | |
| 1589 | |
| 1590 1.15 31 Jan 04 | |
| 1591 Fast interpolated color rotation with 4x4 subpixels; has | |
| 1592 nearly the accuracy of the slower method using 16x16 subpixels. | |
| 1593 Demonstration of line removal from grayscale sketch in | |
| 1594 prog/lineremoval.c. Conversion of grayscale to false color. | |
| 1595 Fixed shear and rotation functions to handle angle = 0.0 properly. | |
| 1596 Other small fixes and interface improvements. | |
| 1597 | |
| 1598 1.14 30 Nov 03 | |
| 1599 Small implementation changes to list.c. Better sorting | |
| 1600 routines for number arrays (numa), plus sorting for box | |
| 1601 arrays (boxa) and pix arrays (pixa). PostScript wrapper | |
| 1602 for jpeg. Better handling of colormaps, and a simple | |
| 1603 function to convert an RGB pix with not more than 256 | |
| 1604 colors to the smallest colormapped pix. PS output wrappers | |
| 1605 for JFIF JPEG and TIFF G4 files. Comments compatible | |
| 1606 with doxygen for automatic documentation. | |
| 1607 | |
| 1608 1.13 31 Oct 03 | |
| 1609 Cleaned up documentation in src. Made libraries and test programs | |
| 1610 ANSI C++ compliant. Added special cases to rasterops for | |
| 1611 alignment to word boundaries. Fixed pngio.c to work with | |
| 1612 most recent libpng (1.2.5). | |
| 1613 | |
| 1614 1.12 30 Jun 03 | |
| 1615 Implemented border chain representation from a binary image, | |
| 1616 writes/reads a compressed version, and renders the original | |
| 1617 image back from the borders. Also writes outline file out | |
| 1618 in svg format. Number arrays (numa) and point arrays (pta) | |
| 1619 are also extended to 2nd level arrays (numaa, ptaa). | |
| 1620 Serialized I/O for boxa, pta, and pixa. | |
| 1621 | |
| 1622 1.11 31 May 03 | |
| 1623 Implemented generic list handling, for doubly-linked | |
| 1624 list cons cells and arbitrary objects. | |
| 1625 | |
| 1626 1.10 14 Apr 03 | |
| 1627 Implemented simple image enhancements in gray and color: | |
| 1628 gamma correction, contrast enhancement, unsharp masking. | |
| 1629 Extended smoothing via block convolution to color. | |
| 1630 Implemented auto-gen'd DWA version of hit-miss transform; | |
| 1631 the code for generating these hmt routines is very similar to | |
| 1632 that for DWA auto-gen'd erosion and dilation. | |
| 1633 | |
| 1634 1.9 28 Feb 03 | |
| 1635 Implemented a safe, expandable byte queue. As an example of | |
| 1636 its use, implemented memory-to-memory compression and decompression | |
| 1637 using zlib. Generalized PS write to include RGB color. | |
| 1638 Implemented a method to find image skew. | |
| 1639 | |
| 1640 1.8 31 Jan 03 | |
| 1641 Implemented a simple 1-pass color quantization with dithering, | |
| 1642 and improved the 2-pass octree color quantization. | |
| 1643 Documented with an application page, that includes jbig2. | |
| 1644 Added new general sampling operations and made a table | |
| 1645 that summarizes the available scaling operations. | |
| 1646 | |
| 1647 1.7 31 Dec 02 | |
| 1648 Added pixHtmlViewer(), a formatter that allows portable viewing of | |
| 1649 a set of images (like a slide show) in a browser. | |
| 1650 Implemented better octree color quantization, with variable | |
| 1651 number of colors, pruning the octree for good color clusters, | |
| 1652 and fast traversal for pixel assignment to colormap. | |
| 1653 | |
| 1654 1.6 30 Nov 02 | |
| 1655 Generalized shear and shear rotation to arbitrary locations | |
| 1656 about which the operation is performed. Implemented in-place | |
| 1657 translation using pixRasteropIP(). Implemented arbitrary | |
| 1658 affine transform of image two ways: pointwise and sequential. | |
| 1659 Added binarization by error diffusion. Added simple color | |
| 1660 quantization by octree. | |
| 1661 | |
| 1662 1.5 31 Oct 02 | |
| 1663 Put jpeglib.h in local directory. This, along with the jmorecfg.h | |
| 1664 file there prevents compiler warnings about redefined typedefs. | |
| 1665 Compiled everything with g++ to make strictly ansi C compatible. | |
| 1666 Added interface gplotFromFile() for simple file-based plotting with | |
| 1667 gnuplot 3.7.2. Added functions to convert 2, 4 and 8 bpp | |
| 1668 color-mapped (i.e., paletted) images to 24 bpp color or | |
| 1669 8 bpp grayscale. Added several jbig2 application cores that | |
| 1670 only require a simple wrapper to make into programs. | |
| 1671 | |
| 1672 1.4 30 Sep 02 | |
| 1673 Added interface to gnuplot 3.7.2 and to x11 display of images. | |
| 1674 Added new functions with arrays of images for use in applications | |
| 1675 such as jbig2 encoders, along with a simple jbig2 implementation | |
| 1676 using either hausdorff or correlation scoring. Added centroid | |
| 1677 finder for images. For accessing image arrays from arrays of | |
| 1678 image arrays, added a "new reference" (NEW_REF) flag, with a | |
| 1679 ref count attached to the array. Added power-of-2 binary | |
| 1680 expansion and reduction. | |
| 1681 | |
| 1682 1.3 30 Jun 02 | |
| 1683 Extended connected components to 8. Added morphological | |
| 1684 operations tophat and hdome, along with clipped arithmetic | |
| 1685 operators on grayscale images. Fixed memory error in | |
| 1686 rasteropGeneralLow() that was found using valgrind. | |
| 1687 Tested most operations with valgrind for memory errors. | |
| 1688 Replaced integer arrays with number arrays, to include floats. | |
| 1689 Added arithmetic functions on grayscale images. | |
| 1690 | |
| 1691 1.2 30 May 02 | |
| 1692 Added connected component utility, stack utility, pix arrays, | |
| 1693 line drawing and seed filling. Binary reconstruction, | |
| 1694 both morphological and raster-oriented, are now supported | |
| 1695 for 4 and 8 connected fills. Added the distance function | |
| 1696 on binary images, grayscale reconstruction, and grayscale | |
| 1697 morphology using the Gil-Werman method. | |
| 1698 | |
| 1699 1.1 30 Apr 02 | |
| 1700 Added orthogonal rotations, binary scaling, PS output, | |
| 1701 binary reconstruction, integer arrays, structuring element | |
| 1702 input/output. | |
| 1703 | |
| 1704 1.0 25 Feb 02 | |
| 1705 Initial distribution, with rasterops, binary morphology (two | |
| 1706 implementations: rasterops and dwa), affine transforms | |
| 1707 (translation, shear, scaling, rotation), fast convolution, | |
| 1708 and basic i/o (BMP, PNG and JPEG). | |
| 1709 | |
| 1710 | |
| 1711 | |
| 1712 </pre> | |
| 1713 | |
| 1714 <!-- JS Window Closer ----- | |
| 1715 <form> | |
| 1716 <center> | |
| 1717 <input type="button" onclick="window.close();" value="Close this window"> | |
| 1718 </center> | |
| 1719 </form> | |
| 1720 ----- JS Window Closer --> | |
| 1721 | |
| 1722 </body> | |
| 1723 </html> | |
| 1724 |
