tesseract_bin 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +23 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/ext/tesseract_bin/extconf.rb +17 -0
- data/lib/tesseract_bin.rb +12 -0
- data/tesseract_bin.gemspec +660 -0
- data/test/helper.rb +18 -0
- data/test/test_tesseract_bin.rb +7 -0
- data/vendor/tesseract-2.04/AUTHORS +8 -0
- data/vendor/tesseract-2.04/COPYING +23 -0
- data/vendor/tesseract-2.04/ChangeLog +71 -0
- data/vendor/tesseract-2.04/INSTALL +229 -0
- data/vendor/tesseract-2.04/Makefile.am +20 -0
- data/vendor/tesseract-2.04/Makefile.in +641 -0
- data/vendor/tesseract-2.04/NEWS +1 -0
- data/vendor/tesseract-2.04/README +138 -0
- data/vendor/tesseract-2.04/ReleaseNotes +213 -0
- data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
- data/vendor/tesseract-2.04/StdAfx.h +24 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
- data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
- data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
- data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
- data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
- data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
- data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
- data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
- data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
- data/vendor/tesseract-2.04/ccmain/control.h +198 -0
- data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
- data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
- data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
- data/vendor/tesseract-2.04/ccmain/output.h +116 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
- data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
- data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
- data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
- data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
- data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
- data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
- data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
- data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
- data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
- data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
- data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
- data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
- data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
- data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
- data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
- data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
- data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
- data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
- data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
- data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
- data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
- data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
- data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
- data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
- data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
- data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
- data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
- data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
- data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
- data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
- data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
- data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
- data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
- data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
- data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
- data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
- data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
- data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
- data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
- data/vendor/tesseract-2.04/ccutil/host.h +180 -0
- data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
- data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
- data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
- data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
- data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
- data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
- data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
- data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
- data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
- data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
- data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
- data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
- data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
- data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
- data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
- data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
- data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
- data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
- data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
- data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
- data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
- data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
- data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
- data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
- data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
- data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
- data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
- data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
- data/vendor/tesseract-2.04/classify/baseline.h +91 -0
- data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
- data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
- data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
- data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
- data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
- data/vendor/tesseract-2.04/classify/cluster.h +158 -0
- data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
- data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
- data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
- data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
- data/vendor/tesseract-2.04/classify/extern.h +32 -0
- data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
- data/vendor/tesseract-2.04/classify/extract.h +36 -0
- data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
- data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
- data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
- data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
- data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
- data/vendor/tesseract-2.04/classify/float2int.h +65 -0
- data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
- data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
- data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
- data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
- data/vendor/tesseract-2.04/classify/fxid.h +69 -0
- data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
- data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
- data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
- data/vendor/tesseract-2.04/classify/intfx.h +63 -0
- data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
- data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
- data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
- data/vendor/tesseract-2.04/classify/intproto.h +320 -0
- data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
- data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
- data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
- data/vendor/tesseract-2.04/classify/mf.h +43 -0
- data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
- data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
- data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
- data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
- data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
- data/vendor/tesseract-2.04/classify/mfx.h +52 -0
- data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
- data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
- data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
- data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
- data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
- data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
- data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
- data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
- data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
- data/vendor/tesseract-2.04/classify/protos.h +258 -0
- data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
- data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
- data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
- data/vendor/tesseract-2.04/classify/speckle.h +69 -0
- data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
- data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
- data/vendor/tesseract-2.04/config/config.guess +1466 -0
- data/vendor/tesseract-2.04/config/config.h.in +188 -0
- data/vendor/tesseract-2.04/config/config.sub +1579 -0
- data/vendor/tesseract-2.04/config/depcomp +530 -0
- data/vendor/tesseract-2.04/config/install-sh +269 -0
- data/vendor/tesseract-2.04/config/missing +198 -0
- data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
- data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
- data/vendor/tesseract-2.04/configure +10424 -0
- data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
- data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
- data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
- data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
- data/vendor/tesseract-2.04/cutil/const.h +108 -0
- data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
- data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
- data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
- data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
- data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
- data/vendor/tesseract-2.04/cutil/debug.h +348 -0
- data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
- data/vendor/tesseract-2.04/cutil/efio.h +32 -0
- data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
- data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
- data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
- data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
- data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
- data/vendor/tesseract-2.04/cutil/general.h +33 -0
- data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
- data/vendor/tesseract-2.04/cutil/globals.h +70 -0
- data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
- data/vendor/tesseract-2.04/cutil/listio.h +43 -0
- data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
- data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
- data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
- data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
- data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
- data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
- data/vendor/tesseract-2.04/cutil/structures.h +112 -0
- data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
- data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
- data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
- data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
- data/vendor/tesseract-2.04/cutil/variables.h +170 -0
- data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
- data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
- data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
- data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
- data/vendor/tesseract-2.04/dict/choices.h +241 -0
- data/vendor/tesseract-2.04/dict/context.cpp +270 -0
- data/vendor/tesseract-2.04/dict/context.h +82 -0
- data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
- data/vendor/tesseract-2.04/dict/dawg.h +394 -0
- data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
- data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
- data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
- data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
- data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
- data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
- data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
- data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
- data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
- data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
- data/vendor/tesseract-2.04/dict/permngram.h +33 -0
- data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
- data/vendor/tesseract-2.04/dict/permnum.h +83 -0
- data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
- data/vendor/tesseract-2.04/dict/permute.h +93 -0
- data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
- data/vendor/tesseract-2.04/dict/reduce.h +112 -0
- data/vendor/tesseract-2.04/dict/states.cpp +382 -0
- data/vendor/tesseract-2.04/dict/states.h +111 -0
- data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
- data/vendor/tesseract-2.04/dict/stopper.h +103 -0
- data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
- data/vendor/tesseract-2.04/dict/trie.h +190 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
- data/vendor/tesseract-2.04/eurotext.tif +0 -0
- data/vendor/tesseract-2.04/image/Makefile.am +10 -0
- data/vendor/tesseract-2.04/image/Makefile.in +596 -0
- data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
- data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
- data/vendor/tesseract-2.04/image/img.h +336 -0
- data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
- data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
- data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
- data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
- data/vendor/tesseract-2.04/image/imgio.h +22 -0
- data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
- data/vendor/tesseract-2.04/image/imgs.h +102 -0
- data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
- data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
- data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
- data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
- data/vendor/tesseract-2.04/image/svshowim.h +25 -0
- data/vendor/tesseract-2.04/java/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
- data/vendor/tesseract-2.04/java/makefile +55 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
- data/vendor/tesseract-2.04/phototest.tif +0 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
- data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
- data/vendor/tesseract-2.04/tessdata/confsets +3 -0
- data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
- data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
- data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
- data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
- data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
- data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
- data/vendor/tesseract-2.04/tessdll.cpp +351 -0
- data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
- data/vendor/tesseract-2.04/tessdll.h +143 -0
- data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
- data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
- data/vendor/tesseract-2.04/tesseract.dsw +116 -0
- data/vendor/tesseract-2.04/tesseract.sln +59 -0
- data/vendor/tesseract-2.04/tesseract.spec +188 -0
- data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
- data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
- data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
- data/vendor/tesseract-2.04/testing/README +43 -0
- data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
- data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
- data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
- data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
- data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
- data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
- data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
- data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
- data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
- data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
- data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
- data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
- data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
- data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
- data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
- data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
- data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
- data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
- data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
- data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
- data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
- data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
- data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
- data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
- data/vendor/tesseract-2.04/textord/makerow.h +295 -0
- data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
- data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
- data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
- data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
- data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
- data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
- data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
- data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
- data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
- data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
- data/vendor/tesseract-2.04/textord/tessout.h +76 -0
- data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
- data/vendor/tesseract-2.04/textord/topitch.h +195 -0
- data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
- data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
- data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
- data/vendor/tesseract-2.04/textord/tospace.h +193 -0
- data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
- data/vendor/tesseract-2.04/textord/tovars.h +94 -0
- data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
- data/vendor/tesseract-2.04/textord/underlin.h +53 -0
- data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
- data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
- data/vendor/tesseract-2.04/training/Makefile.am +54 -0
- data/vendor/tesseract-2.04/training/Makefile.in +720 -0
- data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
- data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
- data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
- data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
- data/vendor/tesseract-2.04/training/mergenf.h +106 -0
- data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
- data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
- data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
- data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
- data/vendor/tesseract-2.04/training/name2char.h +38 -0
- data/vendor/tesseract-2.04/training/training.cpp +190 -0
- data/vendor/tesseract-2.04/training/training.h +130 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
- data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
- data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
- data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
- data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
- data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
- data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
- data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
- data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
- data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
- data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
- data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
- data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
- data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
- data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
- data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
- data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
- data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
- data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
- data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
- data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
- data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
- data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
- data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
- data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
- data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
- data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
- data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
- data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
- data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
- data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
- data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
- data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
- data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
- data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
- data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
- data/vendor/tesseract-2.04/wordrec/render.h +58 -0
- data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
- data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
- data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
- data/vendor/tesseract-2.04/wordrec/split.h +115 -0
- data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
- data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
- data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
- data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
- metadata +708 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
/**********************************************************************
|
2
|
+
* File: reject.h (Formerly reject.h)
|
3
|
+
* Description: Rejection functions used in tessedit
|
4
|
+
* Author: Phil Cheatle
|
5
|
+
* Created: Wed Sep 23 16:50:21 BST 1992
|
6
|
+
*
|
7
|
+
* (C) Copyright 1992, Hewlett-Packard Ltd.
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
** you may not use this file except in compliance with the License.
|
10
|
+
** You may obtain a copy of the License at
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
** See the License for the specific language governing permissions and
|
16
|
+
** limitations under the License.
|
17
|
+
*
|
18
|
+
**********************************************************************/
|
19
|
+
|
20
|
+
#ifndef REJECT_H
|
21
|
+
#define REJECT_H
|
22
|
+
|
23
|
+
#include "varable.h"
|
24
|
+
#include "pageres.h"
|
25
|
+
#include "notdll.h"
|
26
|
+
|
27
|
+
extern INT_VAR_H (tessedit_reject_mode, 5, "Rejection algorithm");
|
28
|
+
extern INT_VAR_H (tessedit_ok_mode, 5, "Acceptance decision algorithm");
|
29
|
+
extern BOOL_VAR_H (tessedit_use_nn, TRUE, "");
|
30
|
+
extern BOOL_VAR_H (tessedit_rejection_debug, FALSE, "Adaption debug");
|
31
|
+
extern BOOL_VAR_H (tessedit_rejection_stats, FALSE, "Show NN stats");
|
32
|
+
extern BOOL_VAR_H (tessedit_flip_0O, TRUE, "Contextual 0O O0 flips");
|
33
|
+
extern double_VAR_H (tessedit_lower_flip_hyphen, 1.5,
|
34
|
+
"Aspect ratio dot/hyphen test");
|
35
|
+
extern double_VAR_H (tessedit_upper_flip_hyphen, 1.8,
|
36
|
+
"Aspect ratio dot/hyphen test");
|
37
|
+
extern BOOL_VAR_H (rej_trust_doc_dawg, FALSE,
|
38
|
+
"Use DOC dawg in 11l conf. detector");
|
39
|
+
extern BOOL_VAR_H (rej_1Il_use_dict_word, FALSE, "Use dictword test");
|
40
|
+
extern BOOL_VAR_H (rej_1Il_trust_permuter_type, TRUE, "Dont double check");
|
41
|
+
extern BOOL_VAR_H (one_ell_conflict_default, TRUE,
|
42
|
+
"one_ell_conflict default");
|
43
|
+
extern BOOL_VAR_H (show_char_clipping, FALSE, "Show clip image window?");
|
44
|
+
extern BOOL_VAR_H (nn_debug, FALSE, "NN DEBUGGING?");
|
45
|
+
extern BOOL_VAR_H (nn_reject_debug, FALSE, "NN DEBUG each char?");
|
46
|
+
extern BOOL_VAR_H (nn_lax, FALSE, "Use 2nd rate matches");
|
47
|
+
extern BOOL_VAR_H (nn_double_check_dict, FALSE, "Double check");
|
48
|
+
extern BOOL_VAR_H (nn_conf_double_check_dict, TRUE,
|
49
|
+
"Double check for confusions");
|
50
|
+
extern BOOL_VAR_H (nn_conf_1Il, TRUE, "NN use 1Il conflicts");
|
51
|
+
extern BOOL_VAR_H (nn_conf_Ss, TRUE, "NN use Ss conflicts");
|
52
|
+
extern BOOL_VAR_H (nn_conf_hyphen, TRUE, "NN hyphen conflicts");
|
53
|
+
extern BOOL_VAR_H (nn_conf_test_good_qual, FALSE, "NN dodgy 1Il cross check");
|
54
|
+
extern BOOL_VAR_H (nn_conf_test_dict, TRUE, "NN dodgy 1Il cross check");
|
55
|
+
extern BOOL_VAR_H (nn_conf_test_sensible, TRUE, "NN dodgy 1Il cross check");
|
56
|
+
extern BOOL_VAR_H (nn_conf_strict_on_dodgy_chs, TRUE,
|
57
|
+
"Require stronger NN match");
|
58
|
+
extern double_VAR_H (nn_dodgy_char_threshold, 0.99, "min accept score");
|
59
|
+
extern INT_VAR_H (nn_conf_accept_level, 4, "NN accept dodgy 1Il matches? ");
|
60
|
+
extern INT_VAR_H (nn_conf_initial_i_level, 3,
|
61
|
+
"NN accept initial Ii match level ");
|
62
|
+
extern BOOL_VAR_H (no_unrej_dubious_chars, TRUE,
|
63
|
+
"Dubious chars next to reject?");
|
64
|
+
extern BOOL_VAR_H (no_unrej_no_alphanum_wds, TRUE,
|
65
|
+
"Stop unrej of non A/N wds?");
|
66
|
+
extern BOOL_VAR_H (no_unrej_1Il, FALSE, "Stop unrej of 1Ilchars?");
|
67
|
+
extern BOOL_VAR_H (rej_use_tess_accepted, TRUE,
|
68
|
+
"Individual rejection control");
|
69
|
+
extern BOOL_VAR_H (rej_use_tess_blanks, TRUE, "Individual rejection control");
|
70
|
+
extern BOOL_VAR_H (rej_use_good_perm, TRUE, "Individual rejection control");
|
71
|
+
extern BOOL_VAR_H (rej_use_sensible_wd, FALSE, "Extend permuter check");
|
72
|
+
extern BOOL_VAR_H (rej_alphas_in_number_perm, FALSE, "Extend permuter check");
|
73
|
+
extern double_VAR_H (rej_whole_of_mostly_reject_word_fract, 0.85,
|
74
|
+
"if >this fract");
|
75
|
+
extern INT_VAR_H (rej_mostly_reject_mode, 1,
|
76
|
+
"0-never, 1-afterNN, 2-after new xht");
|
77
|
+
extern double_VAR_H (tessed_fullstop_aspect_ratio, 1.2,
|
78
|
+
"if >this fract then reject");
|
79
|
+
extern INT_VAR_H (net_image_width, 40, "NN input image width");
|
80
|
+
extern INT_VAR_H (net_image_height, 36, "NN input image height");
|
81
|
+
extern INT_VAR_H (net_image_x_height, 22, "NN input image x_height");
|
82
|
+
extern INT_VAR_H (tessedit_image_border, 2, "Rej blbs near image edge limit");
|
83
|
+
extern INT_VAR_H (net_bl_nodes, 20, "Number of baseline nodes");
|
84
|
+
extern double_VAR_H (nn_reject_threshold, 0.5, "NN min accept score");
|
85
|
+
extern double_VAR_H (nn_reject_head_and_shoulders, 0.6,
|
86
|
+
"top scores sep factor");
|
87
|
+
extern STRING_VAR_H (ok_single_ch_non_alphanum_wds, "-?\075",
|
88
|
+
"Allow NN to unrej");
|
89
|
+
extern STRING_VAR_H (ok_repeated_ch_non_alphanum_wds, "-?*\075",
|
90
|
+
"Allow NN to unrej");
|
91
|
+
extern STRING_VAR_H (conflict_set_I_l_1, "Il1[]", "Il1 conflict set");
|
92
|
+
extern STRING_VAR_H (conflict_set_S_s, "Ss$", "Ss conflict set");
|
93
|
+
extern STRING_VAR_H (conflict_set_hyphen, "-_~", "hyphen conflict set");
|
94
|
+
extern STRING_VAR_H (dubious_chars_left_of_reject, "!'+`()-./\\<>;:^_,~\"",
|
95
|
+
"Unreliable chars");
|
96
|
+
extern STRING_VAR_H (dubious_chars_right_of_reject, "!'+`()-./\\<>;:^_,~\"",
|
97
|
+
"Unreliable chars");
|
98
|
+
extern INT_VAR_H (min_sane_x_ht_pixels, 8,
|
99
|
+
"Reject any x-ht lt or eq than this");
|
100
|
+
void set_done( //set done flag
|
101
|
+
WERD_RES *word,
|
102
|
+
inT16 pass);
|
103
|
+
void make_reject_map( //make rej map for wd //detailed results
|
104
|
+
WERD_RES *word,
|
105
|
+
BLOB_CHOICE_LIST_CLIST *blob_choices,
|
106
|
+
ROW *row,
|
107
|
+
inT16 pass //1st or 2nd?
|
108
|
+
);
|
109
|
+
void reject_blanks(WERD_RES *word);
|
110
|
+
void reject_I_1_L(WERD_RES *word);
|
111
|
+
//detailed results
|
112
|
+
void reject_poor_matches(WERD_RES *word, BLOB_CHOICE_LIST_CLIST *blob_choices);
|
113
|
+
float compute_reject_threshold( //compute threshold //detailed results
|
114
|
+
BLOB_CHOICE_LIST_CLIST *blob_choices);
|
115
|
+
int sort_floats( //qsort function
|
116
|
+
const void *arg1, //ptrs to floats
|
117
|
+
const void *arg2);
|
118
|
+
void reject_edge_blobs(WERD_RES *word);
|
119
|
+
BOOL8 one_ell_conflict(WERD_RES *word_res, BOOL8 update_map);
|
120
|
+
inT16 first_alphanum_offset(const char *word,
|
121
|
+
const char *word_lengths);
|
122
|
+
inT16 first_alphanum_index(const char *word,
|
123
|
+
const char *word_lengths);
|
124
|
+
inT16 alpha_count(const char *word,
|
125
|
+
const char *word_lengths);
|
126
|
+
BOOL8 word_contains_non_1_digit(const char *word,
|
127
|
+
const char *word_lengths);
|
128
|
+
BOOL8 test_ambig_word( //test for ambiguity
|
129
|
+
WERD_RES *word);
|
130
|
+
//original word
|
131
|
+
BOOL8 ambig_word(const char *start_word,
|
132
|
+
char *temp_word, //alterable copy
|
133
|
+
inT16 test_char_pos //idx to char to alter
|
134
|
+
);
|
135
|
+
const char *char_ambiguities(char c);
|
136
|
+
|
137
|
+
#ifndef EMBEDDED
|
138
|
+
void test_ambigs(const char *word);
|
139
|
+
#endif
|
140
|
+
|
141
|
+
void nn_recover_rejects(WERD_RES *word, ROW *row);
|
142
|
+
void nn_match_word( //Match a word
|
143
|
+
WERD_RES *word,
|
144
|
+
ROW *row);
|
145
|
+
//of character
|
146
|
+
inT16 nn_match_char(IMAGE &scaled_image,
|
147
|
+
float baseline_pos, //rel to scaled_image
|
148
|
+
BOOL8 dict_word, //part of dict wd?
|
149
|
+
BOOL8 checked_dict_word, //part of dict wd?
|
150
|
+
BOOL8 sensible_word, //part acceptable str?
|
151
|
+
BOOL8 centre, //not at word ends?
|
152
|
+
BOOL8 good_quality_word, //initial segmentation
|
153
|
+
char tess_ch //confirm this?
|
154
|
+
);
|
155
|
+
inT16 evaluate_net_match(char top,
|
156
|
+
float top_score,
|
157
|
+
char next,
|
158
|
+
float next_score,
|
159
|
+
char tess_ch,
|
160
|
+
BOOL8 dict_word,
|
161
|
+
BOOL8 checked_dict_word,
|
162
|
+
BOOL8 sensible_word,
|
163
|
+
BOOL8 centre,
|
164
|
+
BOOL8 good_quality_word);
|
165
|
+
void dont_allow_dubious_chars(WERD_RES *word);
|
166
|
+
|
167
|
+
void dont_allow_1Il(WERD_RES *word);
|
168
|
+
|
169
|
+
inT16 count_alphanums( //how many alphanums
|
170
|
+
WERD_RES *word);
|
171
|
+
void reject_mostly_rejects( //rej all if most rejectd
|
172
|
+
WERD_RES *word);
|
173
|
+
BOOL8 repeated_nonalphanum_wd(WERD_RES *word, ROW *row);
|
174
|
+
BOOL8 repeated_ch_string(const char *rep_ch_str,
|
175
|
+
const char *lengths);
|
176
|
+
inT16 safe_dict_word(const char *s);
|
177
|
+
void flip_hyphens(WERD_RES *word);
|
178
|
+
void flip_0O(WERD_RES *word);
|
179
|
+
BOOL8 non_O_upper(const char* str, int length);
|
180
|
+
BOOL8 non_0_digit(const char* str, int length);
|
181
|
+
#endif
|
@@ -0,0 +1,366 @@
|
|
1
|
+
/**********************************************************************
|
2
|
+
* File: scaleimg.cpp (Formerly scaleim.c)
|
3
|
+
* Description: Smart scaling of images.
|
4
|
+
* Author: Phil Cheatle
|
5
|
+
* Created: Wed Nov 18 16:12:03 GMT 1992
|
6
|
+
*
|
7
|
+
* (C) Copyright 1992, Hewlett-Packard Ltd.
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
** you may not use this file except in compliance with the License.
|
10
|
+
** You may obtain a copy of the License at
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
** See the License for the specific language governing permissions and
|
16
|
+
** limitations under the License.
|
17
|
+
*
|
18
|
+
**********************************************************************/
|
19
|
+
|
20
|
+
/*************************************************************************
|
21
|
+
* This is really Sheelagh's code that I've hacked into a more usable form.
|
22
|
+
* You simply call scale_image() passing in source and target images. The target
|
23
|
+
* image should be empty, but created - in order to define the destination
|
24
|
+
* size.
|
25
|
+
*************************************************************************/
|
26
|
+
|
27
|
+
#include "mfcpch.h"
|
28
|
+
#include <stdlib.h>
|
29
|
+
#include <string.h>
|
30
|
+
#include "fileerr.h"
|
31
|
+
#include "tprintf.h"
|
32
|
+
//#include "grphics.h"
|
33
|
+
#include "img.h"
|
34
|
+
//#include "basefile.h"
|
35
|
+
#include "imgscale.h"
|
36
|
+
#include "scaleimg.h"
|
37
|
+
|
38
|
+
void scale_image( //scale an image
|
39
|
+
IMAGE &image, //source image
|
40
|
+
IMAGE &target_image //target image
|
41
|
+
) {
|
42
|
+
inT32 xsize, ysize, new_xsize, new_ysize;
|
43
|
+
IMAGELINE line, new_line;
|
44
|
+
int *hires, *lores, *oldhires, *oldlores;
|
45
|
+
int i, j, n, oldn, row, col;
|
46
|
+
int offset = 0; //not used here
|
47
|
+
float factor;
|
48
|
+
uinT8 curr_colour, new_colour;
|
49
|
+
int dummy = -1;
|
50
|
+
IMAGE image2; //horiz scaled image
|
51
|
+
|
52
|
+
xsize = image.get_xsize ();
|
53
|
+
ysize = image.get_ysize ();
|
54
|
+
new_xsize = target_image.get_xsize ();
|
55
|
+
new_ysize = target_image.get_ysize ();
|
56
|
+
if (new_ysize > new_xsize)
|
57
|
+
new_line.init (new_ysize);
|
58
|
+
else
|
59
|
+
new_line.init (new_xsize);
|
60
|
+
|
61
|
+
factor = (float) xsize / (float) new_xsize;
|
62
|
+
|
63
|
+
hires = (int *) calloc (xsize, sizeof (int));
|
64
|
+
lores = (int *) calloc (new_xsize, sizeof (int));
|
65
|
+
oldhires = (int *) calloc (xsize, sizeof (int));
|
66
|
+
oldlores = (int *) calloc (new_xsize, sizeof (int));
|
67
|
+
if ((hires == NULL) || (lores == NULL) || (oldhires == NULL)
|
68
|
+
|| (oldlores == NULL)) {
|
69
|
+
fprintf (stderr, "Calloc error in scale_image\n");
|
70
|
+
err_exit();
|
71
|
+
}
|
72
|
+
|
73
|
+
image2.create (new_xsize, ysize, image.get_bpp ());
|
74
|
+
|
75
|
+
oldn = 0;
|
76
|
+
/* do first row separately because hires[col-1] doesn't make sense here */
|
77
|
+
image.fast_get_line (0, 0, xsize, &line);
|
78
|
+
/* each line nominally begins with white */
|
79
|
+
curr_colour = 1;
|
80
|
+
n = 0;
|
81
|
+
for (i = 0; i < xsize; i++) {
|
82
|
+
new_colour = *(line.pixels + i);
|
83
|
+
if (new_colour != curr_colour) {
|
84
|
+
hires[n] = i;
|
85
|
+
n++;
|
86
|
+
curr_colour = new_colour;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
if (offset != 0)
|
90
|
+
for (i = 0; i < n; i++)
|
91
|
+
hires[i] += offset;
|
92
|
+
|
93
|
+
if (n > new_xsize) {
|
94
|
+
tprintf ("Too many transitions (%d) on line 0\n", n);
|
95
|
+
scale_image_cop_out(image,
|
96
|
+
target_image,
|
97
|
+
factor,
|
98
|
+
hires,
|
99
|
+
lores,
|
100
|
+
oldhires,
|
101
|
+
oldlores);
|
102
|
+
return;
|
103
|
+
}
|
104
|
+
else if (n > 0)
|
105
|
+
dyn_prog (n, hires, lores, new_xsize, &dummy, &dummy, 0, factor);
|
106
|
+
else
|
107
|
+
lores[0] = new_xsize;
|
108
|
+
|
109
|
+
curr_colour = 1;
|
110
|
+
j = 0;
|
111
|
+
for (i = 0; i < new_xsize; i++) {
|
112
|
+
if (lores[j] == i) {
|
113
|
+
curr_colour = 1 - curr_colour;
|
114
|
+
j++;
|
115
|
+
}
|
116
|
+
*(new_line.pixels + i) = curr_colour;
|
117
|
+
}
|
118
|
+
image2.put_line (0, 0, new_xsize, &new_line, 0);
|
119
|
+
|
120
|
+
for (i = 0; i < n; i++) {
|
121
|
+
oldhires[i] = hires[i];
|
122
|
+
oldlores[i] = lores[i];
|
123
|
+
}
|
124
|
+
|
125
|
+
for (i = n; i < oldn; i++) {
|
126
|
+
oldhires[i] = 0;
|
127
|
+
oldlores[i] = 0;
|
128
|
+
}
|
129
|
+
oldn = n;
|
130
|
+
|
131
|
+
for (row = 1; row < ysize; row++) {
|
132
|
+
image.fast_get_line (0, row, xsize, &line);
|
133
|
+
/* each line nominally begins with white */
|
134
|
+
curr_colour = 1;
|
135
|
+
n = 0;
|
136
|
+
for (i = 0; i < xsize; i++) {
|
137
|
+
new_colour = *(line.pixels + i);
|
138
|
+
if (new_colour != curr_colour) {
|
139
|
+
hires[n] = i;
|
140
|
+
n++;
|
141
|
+
curr_colour = new_colour;
|
142
|
+
}
|
143
|
+
}
|
144
|
+
for (i = n; i < oldn; i++) {
|
145
|
+
hires[i] = 0;
|
146
|
+
lores[i] = 0;
|
147
|
+
}
|
148
|
+
if (offset != 0)
|
149
|
+
for (i = 0; i < n; i++)
|
150
|
+
hires[i] += offset;
|
151
|
+
|
152
|
+
if (n > new_xsize) {
|
153
|
+
tprintf ("Too many transitions (%d) on line %d\n", n, row);
|
154
|
+
scale_image_cop_out(image,
|
155
|
+
target_image,
|
156
|
+
factor,
|
157
|
+
hires,
|
158
|
+
lores,
|
159
|
+
oldhires,
|
160
|
+
oldlores);
|
161
|
+
return;
|
162
|
+
}
|
163
|
+
else if (n > 0)
|
164
|
+
dyn_prog(n, hires, lores, new_xsize, oldhires, oldlores, oldn, factor);
|
165
|
+
else
|
166
|
+
lores[0] = new_xsize;
|
167
|
+
|
168
|
+
curr_colour = 1;
|
169
|
+
j = 0;
|
170
|
+
for (i = 0; i < new_xsize; i++) {
|
171
|
+
if (lores[j] == i) {
|
172
|
+
curr_colour = 1 - curr_colour;
|
173
|
+
j++;
|
174
|
+
}
|
175
|
+
*(new_line.pixels + i) = curr_colour;
|
176
|
+
}
|
177
|
+
image2.put_line (0, row, new_xsize, &new_line, 0);
|
178
|
+
|
179
|
+
for (i = 0; i < n; i++) {
|
180
|
+
oldhires[i] = hires[i];
|
181
|
+
oldlores[i] = lores[i];
|
182
|
+
}
|
183
|
+
for (i = n; i < oldn; i++) {
|
184
|
+
oldhires[i] = 0;
|
185
|
+
oldlores[i] = 0;
|
186
|
+
}
|
187
|
+
oldn = n;
|
188
|
+
}
|
189
|
+
|
190
|
+
free(hires);
|
191
|
+
free(lores);
|
192
|
+
free(oldhires);
|
193
|
+
free(oldlores);
|
194
|
+
|
195
|
+
/* NOW DO THE VERTICAL SCALING from image2 to target_image*/
|
196
|
+
|
197
|
+
xsize = new_xsize;
|
198
|
+
factor = (float) ysize / (float) new_ysize;
|
199
|
+
offset = 0;
|
200
|
+
|
201
|
+
hires = (int *) calloc (ysize, sizeof (int));
|
202
|
+
lores = (int *) calloc (new_ysize, sizeof (int));
|
203
|
+
oldhires = (int *) calloc (ysize, sizeof (int));
|
204
|
+
oldlores = (int *) calloc (new_ysize, sizeof (int));
|
205
|
+
if ((hires == NULL) || (lores == NULL) || (oldhires == NULL)
|
206
|
+
|| (oldlores == NULL)) {
|
207
|
+
fprintf (stderr, "Calloc error in scale_image (vert)\n");
|
208
|
+
err_exit();
|
209
|
+
}
|
210
|
+
|
211
|
+
oldn = 0;
|
212
|
+
/* do first col separately because hires[col-1] doesn't make sense here */
|
213
|
+
image2.get_column (0, 0, ysize, &line, 0);
|
214
|
+
/* each line nominally begins with white */
|
215
|
+
curr_colour = 1;
|
216
|
+
n = 0;
|
217
|
+
for (i = 0; i < ysize; i++) {
|
218
|
+
new_colour = *(line.pixels + i);
|
219
|
+
if (new_colour != curr_colour) {
|
220
|
+
hires[n] = i;
|
221
|
+
n++;
|
222
|
+
curr_colour = new_colour;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
226
|
+
if (offset != 0)
|
227
|
+
for (i = 0; i < n; i++)
|
228
|
+
hires[i] += offset;
|
229
|
+
|
230
|
+
if (n > new_ysize) {
|
231
|
+
tprintf ("Too many transitions (%d) on column 0\n", n);
|
232
|
+
scale_image_cop_out(image,
|
233
|
+
target_image,
|
234
|
+
factor,
|
235
|
+
hires,
|
236
|
+
lores,
|
237
|
+
oldhires,
|
238
|
+
oldlores);
|
239
|
+
return;
|
240
|
+
}
|
241
|
+
else if (n > 0)
|
242
|
+
dyn_prog (n, hires, lores, new_ysize, &dummy, &dummy, 0, factor);
|
243
|
+
else
|
244
|
+
lores[0] = new_ysize;
|
245
|
+
|
246
|
+
curr_colour = 1;
|
247
|
+
j = 0;
|
248
|
+
for (i = 0; i < new_ysize; i++) {
|
249
|
+
if (lores[j] == i) {
|
250
|
+
curr_colour = 1 - curr_colour;
|
251
|
+
j++;
|
252
|
+
}
|
253
|
+
*(new_line.pixels + i) = curr_colour;
|
254
|
+
}
|
255
|
+
target_image.put_column (0, 0, new_ysize, &new_line, 0);
|
256
|
+
|
257
|
+
for (i = 0; i < n; i++) {
|
258
|
+
oldhires[i] = hires[i];
|
259
|
+
oldlores[i] = lores[i];
|
260
|
+
}
|
261
|
+
for (i = n; i < oldn; i++) {
|
262
|
+
oldhires[i] = 0;
|
263
|
+
oldlores[i] = 0;
|
264
|
+
}
|
265
|
+
oldn = n;
|
266
|
+
|
267
|
+
for (col = 1; col < xsize; col++) {
|
268
|
+
image2.get_column (col, 0, ysize, &line, 0);
|
269
|
+
/* each line nominally begins with white */
|
270
|
+
curr_colour = 1;
|
271
|
+
n = 0;
|
272
|
+
for (i = 0; i < ysize; i++) {
|
273
|
+
new_colour = *(line.pixels + i);
|
274
|
+
if (new_colour != curr_colour) {
|
275
|
+
hires[n] = i;
|
276
|
+
n++;
|
277
|
+
curr_colour = new_colour;
|
278
|
+
}
|
279
|
+
}
|
280
|
+
for (i = n; i < oldn; i++) {
|
281
|
+
hires[i] = 0;
|
282
|
+
lores[i] = 0;
|
283
|
+
}
|
284
|
+
|
285
|
+
if (offset != 0)
|
286
|
+
for (i = 0; i < n; i++)
|
287
|
+
hires[i] += offset;
|
288
|
+
|
289
|
+
if (n > new_ysize) {
|
290
|
+
tprintf ("Too many transitions (%d) on column %d\n", n, col);
|
291
|
+
scale_image_cop_out(image,
|
292
|
+
target_image,
|
293
|
+
factor,
|
294
|
+
hires,
|
295
|
+
lores,
|
296
|
+
oldhires,
|
297
|
+
oldlores);
|
298
|
+
return;
|
299
|
+
}
|
300
|
+
else if (n > 0)
|
301
|
+
dyn_prog(n, hires, lores, new_ysize, oldhires, oldlores, oldn, factor);
|
302
|
+
else
|
303
|
+
lores[0] = new_ysize;
|
304
|
+
|
305
|
+
curr_colour = 1;
|
306
|
+
j = 0;
|
307
|
+
for (i = 0; i < new_ysize; i++) {
|
308
|
+
if (lores[j] == i) {
|
309
|
+
curr_colour = 1 - curr_colour;
|
310
|
+
j++;
|
311
|
+
}
|
312
|
+
*(new_line.pixels + i) = curr_colour;
|
313
|
+
}
|
314
|
+
target_image.put_column (col, 0, new_ysize, &new_line, 0);
|
315
|
+
|
316
|
+
for (i = 0; i < n; i++) {
|
317
|
+
oldhires[i] = hires[i];
|
318
|
+
oldlores[i] = lores[i];
|
319
|
+
}
|
320
|
+
for (i = n; i < oldn; i++) {
|
321
|
+
oldhires[i] = 0;
|
322
|
+
oldlores[i] = 0;
|
323
|
+
}
|
324
|
+
oldn = n;
|
325
|
+
}
|
326
|
+
free(hires);
|
327
|
+
free(lores);
|
328
|
+
free(oldhires);
|
329
|
+
free(oldlores);
|
330
|
+
}
|
331
|
+
|
332
|
+
|
333
|
+
/**********************************************************************
|
334
|
+
* scale_image_cop_out
|
335
|
+
*
|
336
|
+
* Cop-out of scale_image by doing it the easy way and free the data.
|
337
|
+
**********************************************************************/
|
338
|
+
|
339
|
+
void scale_image_cop_out( //scale an image
|
340
|
+
IMAGE &image, //source image
|
341
|
+
IMAGE &target_image, //target image
|
342
|
+
float factor, //scale factor
|
343
|
+
int *hires,
|
344
|
+
int *lores,
|
345
|
+
int *oldhires,
|
346
|
+
int *oldlores) {
|
347
|
+
inT32 xsize, ysize, new_xsize, new_ysize;
|
348
|
+
|
349
|
+
xsize = image.get_xsize ();
|
350
|
+
ysize = image.get_ysize ();
|
351
|
+
new_xsize = target_image.get_xsize ();
|
352
|
+
new_ysize = target_image.get_ysize ();
|
353
|
+
|
354
|
+
if (factor <= 0.5)
|
355
|
+
reduce_sub_image (&image, 0, 0, xsize, ysize,
|
356
|
+
&target_image, 0, 0, (inT32) (1.0 / factor), FALSE);
|
357
|
+
else if (factor >= 2)
|
358
|
+
enlarge_sub_image (&image, 0, 0, &target_image,
|
359
|
+
0, 0, new_xsize, new_ysize, (inT32) factor, FALSE);
|
360
|
+
else
|
361
|
+
copy_sub_image (&image, 0, 0, xsize, ysize, &target_image, 0, 0, FALSE);
|
362
|
+
free(hires);
|
363
|
+
free(lores);
|
364
|
+
free(oldhires);
|
365
|
+
free(oldlores);
|
366
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/**********************************************************************
|
2
|
+
* File: scaleimg.h (Formerly scaleim.h)
|
3
|
+
* Description: Smart scaling of images.
|
4
|
+
* Author: Phil Cheatle
|
5
|
+
* Created: Wed Nov 18 16:12:03 GMT 1992
|
6
|
+
*
|
7
|
+
* (C) Copyright 1992, Hewlett-Packard Ltd.
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
** you may not use this file except in compliance with the License.
|
10
|
+
** You may obtain a copy of the License at
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
** See the License for the specific language governing permissions and
|
16
|
+
** limitations under the License.
|
17
|
+
*
|
18
|
+
**********************************************************************/
|
19
|
+
|
20
|
+
#ifndef SCALEIMG_H
|
21
|
+
#define SCALEIMG_H
|
22
|
+
|
23
|
+
void scale_image( //scale an image
|
24
|
+
IMAGE &image, //source image
|
25
|
+
IMAGE &target_image //target image
|
26
|
+
);
|
27
|
+
void scale_image_cop_out( //scale an image
|
28
|
+
IMAGE &image, //source image
|
29
|
+
IMAGE &target_image, //target image
|
30
|
+
float factor, //scale factor
|
31
|
+
int *hires,
|
32
|
+
int *lores,
|
33
|
+
int *oldhires,
|
34
|
+
int *oldlores);
|
35
|
+
#endif
|