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,130 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: metrics.h (Formerly metrics.h)
|
|
5
|
+
* Description:
|
|
6
|
+
* Author: Mark Seaman, SW Productivity
|
|
7
|
+
* Created: Fri Oct 16 14:37:00 1987
|
|
8
|
+
* Modified: Tue Jul 30 17:02:48 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Reusable Software Component
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
#ifndef METRICS_H
|
|
26
|
+
#define METRICS_H
|
|
27
|
+
|
|
28
|
+
/*----------------------------------------------------------------------
|
|
29
|
+
I n c l u d e s
|
|
30
|
+
----------------------------------------------------------------------*/
|
|
31
|
+
#include "measure.h"
|
|
32
|
+
#include "bestfirst.h"
|
|
33
|
+
#include "states.h"
|
|
34
|
+
|
|
35
|
+
/*----------------------------------------------------------------------
|
|
36
|
+
V a r i a b l e s
|
|
37
|
+
----------------------------------------------------------------------*/
|
|
38
|
+
extern int words_chopped1;
|
|
39
|
+
extern int words_chopped2;
|
|
40
|
+
extern int chops_attempted1;
|
|
41
|
+
extern int chops_performed1;
|
|
42
|
+
extern int chops_attempted2;
|
|
43
|
+
extern int chops_performed2;
|
|
44
|
+
extern int permutation_count;
|
|
45
|
+
|
|
46
|
+
extern int character_count;
|
|
47
|
+
extern int word_count;
|
|
48
|
+
extern int chars_classified;
|
|
49
|
+
|
|
50
|
+
extern MEASUREMENT width_measure;
|
|
51
|
+
extern MEASUREMENT width_priority_range;
|
|
52
|
+
extern MEASUREMENT match_priority_range;
|
|
53
|
+
|
|
54
|
+
/*----------------------------------------------------------------------
|
|
55
|
+
F u n c t i o n s
|
|
56
|
+
----------------------------------------------------------------------*/
|
|
57
|
+
void init_metrics();
|
|
58
|
+
void end_metrics();
|
|
59
|
+
|
|
60
|
+
void record_certainty(float certainty, int pass);
|
|
61
|
+
|
|
62
|
+
void record_search_status(int num_states, int before_best, float closeness);
|
|
63
|
+
|
|
64
|
+
#ifndef SECURE_NAMES
|
|
65
|
+
void save_summary(inT32 elapsed_time);
|
|
66
|
+
#endif
|
|
67
|
+
|
|
68
|
+
void record_priorities(SEARCH_RECORD *the_search,
|
|
69
|
+
STATE *old_state,
|
|
70
|
+
FLOAT32 priority_1,
|
|
71
|
+
FLOAT32 priority_2);
|
|
72
|
+
|
|
73
|
+
void record_samples(FLOAT32 match_pri, FLOAT32 width_pri);
|
|
74
|
+
|
|
75
|
+
void reset_width_tally();
|
|
76
|
+
|
|
77
|
+
void save_best_state(CHUNKS_RECORD *chunks_record);
|
|
78
|
+
|
|
79
|
+
void start_recording();
|
|
80
|
+
|
|
81
|
+
void stop_recording();
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
#if defined(__STDC__) || defined(__cplusplus) || MAC_OR_DOS
|
|
85
|
+
# define _ARGS(s) s
|
|
86
|
+
#else
|
|
87
|
+
# define _ARGS(s) ()
|
|
88
|
+
#endif*/
|
|
89
|
+
|
|
90
|
+
/* metrics.c
|
|
91
|
+
void init_metrics
|
|
92
|
+
_ARGS((void));
|
|
93
|
+
|
|
94
|
+
void record_certainty
|
|
95
|
+
_ARGS((float certainty,
|
|
96
|
+
int pass));
|
|
97
|
+
|
|
98
|
+
void record_search_status
|
|
99
|
+
_ARGS((int num_states,
|
|
100
|
+
int before_best,
|
|
101
|
+
float closeness));
|
|
102
|
+
|
|
103
|
+
void save_summary
|
|
104
|
+
_ARGS((inT32 elapsed_time));
|
|
105
|
+
|
|
106
|
+
void record_priorities
|
|
107
|
+
_ARGS((SEARCH_RECORD *the_search,
|
|
108
|
+
STATE *old_state,
|
|
109
|
+
FLOAT32 priority_1,
|
|
110
|
+
FLOAT32 priority_2));
|
|
111
|
+
|
|
112
|
+
void record_samples
|
|
113
|
+
_ARGS((FLOAT32 match_pri,
|
|
114
|
+
FLOAT32 width_pri));
|
|
115
|
+
|
|
116
|
+
void reset_width_tally
|
|
117
|
+
_ARGS((void));
|
|
118
|
+
|
|
119
|
+
void save_best_state
|
|
120
|
+
_ARGS((CHUNKS_RECORD *chunks_record));
|
|
121
|
+
|
|
122
|
+
void start_recording
|
|
123
|
+
_ARGS((void));
|
|
124
|
+
|
|
125
|
+
void stop_recording
|
|
126
|
+
_ARGS((void));
|
|
127
|
+
|
|
128
|
+
#undef _ARGS
|
|
129
|
+
*/
|
|
130
|
+
#endif
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: mfvars.c
|
|
3
|
+
** Purpose: Hooks global microfeature variables into the wo system.
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Fri Jan 12 12:47:20 1990, DSJ, Created.
|
|
6
|
+
**
|
|
7
|
+
** (c) Copyright Hewlett-Packard Company, 1988.
|
|
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
|
+
#include "blobclass.h"
|
|
19
|
+
#include "extract.h"
|
|
20
|
+
#include "adaptmatch.h"
|
|
21
|
+
|
|
22
|
+
/**----------------------------------------------------------------------------
|
|
23
|
+
Public Code
|
|
24
|
+
----------------------------------------------------------------------------**/
|
|
25
|
+
/*---------------------------------------------------------------------------*/
|
|
26
|
+
void mfeature_variables() {
|
|
27
|
+
/*
|
|
28
|
+
** Parameters: none
|
|
29
|
+
** Globals: none
|
|
30
|
+
** Operation: Install global variables into the wiseowl variable system.
|
|
31
|
+
** Return: none
|
|
32
|
+
** Exceptions: none
|
|
33
|
+
** History: Fri Jan 12 13:17:07 1990, DSJ, Created.
|
|
34
|
+
*/
|
|
35
|
+
InitBlobClassifierVars();
|
|
36
|
+
InitExtractorVars();
|
|
37
|
+
} /* mfeature_variables */
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
/*---------------------------------------------------------------------------*/
|
|
41
|
+
void mfeature_init() {
|
|
42
|
+
/*
|
|
43
|
+
** Parameters: none
|
|
44
|
+
** Globals: none
|
|
45
|
+
** Operation: none
|
|
46
|
+
** Return: none
|
|
47
|
+
** Exceptions: none
|
|
48
|
+
** History: Fri Jan 12 13:22:41 1990, DSJ, Created.
|
|
49
|
+
*/
|
|
50
|
+
InitAdaptiveClassifier();
|
|
51
|
+
} /* mfeature_init */
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: mfvars.h
|
|
3
|
+
** Purpose: Routines to install global variables into wo system.
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Fri Jan 12 13:23:46 1990, DSJ, Created.
|
|
6
|
+
**
|
|
7
|
+
** (c) Copyright Hewlett-Packard Company, 1988.
|
|
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
|
+
#ifndef MFVARS_H
|
|
19
|
+
#define MFVARS_H
|
|
20
|
+
|
|
21
|
+
/**----------------------------------------------------------------------------
|
|
22
|
+
Public Function Prototypes
|
|
23
|
+
----------------------------------------------------------------------------**/
|
|
24
|
+
void mfeature_variables();
|
|
25
|
+
|
|
26
|
+
void mfeature_init();
|
|
27
|
+
#endif
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: msmenus.c (Formerly msmenus.c)
|
|
5
|
+
* Description: Menu creation and initialization
|
|
6
|
+
* Author: Mark Seaman, OCR Technology
|
|
7
|
+
* Created: Thu Jul 27 08:59:01 1989
|
|
8
|
+
* Modified: Fri Jul 12 16:04:50 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Experimental (Do Not Distribute)
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1989, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
/*----------------------------------------------------------------------
|
|
26
|
+
I n c l u d e s
|
|
27
|
+
---------------------------------------------------------------------*/
|
|
28
|
+
#include <stdio.h>
|
|
29
|
+
#include <signal.h>
|
|
30
|
+
|
|
31
|
+
#include "msmenus.h"
|
|
32
|
+
#include "debug.h"
|
|
33
|
+
#include "sigmenu.h"
|
|
34
|
+
/* includes for init functions */
|
|
35
|
+
#include "plotseg.h"
|
|
36
|
+
#include "baseline.h"
|
|
37
|
+
#include "bestfirst.h"
|
|
38
|
+
#include "split.h"
|
|
39
|
+
#include "associate.h"
|
|
40
|
+
#include "chop.h"
|
|
41
|
+
#include "tordvars.h"
|
|
42
|
+
#include "permute.h"
|
|
43
|
+
|
|
44
|
+
/*----------------------------------------------------------------------
|
|
45
|
+
V a r i a b l e s
|
|
46
|
+
----------------------------------------------------------------------*/
|
|
47
|
+
#ifndef GRAPHICS_DISABLED
|
|
48
|
+
int handle_menu_3();
|
|
49
|
+
int handle_menu_4();
|
|
50
|
+
int handle_menu_5();
|
|
51
|
+
int handle_menu_6();
|
|
52
|
+
int handle_menu_7();
|
|
53
|
+
int handle_menu_8();
|
|
54
|
+
int handle_menu_9();
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
/*----------------------------------------------------------------------
|
|
58
|
+
F u n c t i o n s
|
|
59
|
+
----------------------------------------------------------------------*/
|
|
60
|
+
/**********************************************************************
|
|
61
|
+
* init_ms_debug
|
|
62
|
+
*
|
|
63
|
+
* Initialize the traps for handling the splitter debug stuff.
|
|
64
|
+
**********************************************************************/
|
|
65
|
+
void init_ms_debug() {
|
|
66
|
+
static int first_time = 1;
|
|
67
|
+
|
|
68
|
+
if (first_time) {
|
|
69
|
+
first_time = 0;
|
|
70
|
+
/* Set up the interrupts */
|
|
71
|
+
#ifndef GRAPHICS_DISABLED
|
|
72
|
+
#ifndef SECURE_NAMES
|
|
73
|
+
AddSignalMenuItem (SIGINT, 3, "Chopper", handle_menu_3);
|
|
74
|
+
AddSignalMenuItem (SIGINT, 4, "Text Order", handle_menu_4);
|
|
75
|
+
AddSignalMenuItem (SIGINT, 5, "Graphics", handle_menu_5);
|
|
76
|
+
AddSignalMenuItem (SIGINT, 6, "Text Display", handle_menu_6);
|
|
77
|
+
AddSignalMenuItem (SIGINT, 7, "Similarity Matcher", handle_menu_7);
|
|
78
|
+
AddSignalMenuItem (SIGINT, 8, "Context", handle_menu_8);
|
|
79
|
+
AddSignalMenuItem (SIGINT, 9, "Joiner", handle_menu_9);
|
|
80
|
+
#endif
|
|
81
|
+
|
|
82
|
+
init_plotseg();
|
|
83
|
+
init_render_vars();
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
init_baseline();
|
|
87
|
+
init_bestfirst_vars();
|
|
88
|
+
init_splitter_vars();
|
|
89
|
+
init_associate_vars();
|
|
90
|
+
init_chop();
|
|
91
|
+
|
|
92
|
+
init_textord_vars();
|
|
93
|
+
init_permute_vars();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
/**********************************************************************
|
|
99
|
+
* handle_menu_X
|
|
100
|
+
*
|
|
101
|
+
* Initialize the traps for handling the splitter debug stuff.
|
|
102
|
+
**********************************************************************/
|
|
103
|
+
#ifndef GRAPHICS_DISABLED
|
|
104
|
+
handle_menu (3, handle_menu_3)
|
|
105
|
+
handle_menu (4, handle_menu_4)
|
|
106
|
+
handle_menu (5, handle_menu_5)
|
|
107
|
+
handle_menu (6, handle_menu_6)
|
|
108
|
+
handle_menu (7, handle_menu_7)
|
|
109
|
+
handle_menu (8, handle_menu_8) handle_menu (9, handle_menu_9)
|
|
110
|
+
#endif
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: msmenus.h (Formerly msmenus.h)
|
|
5
|
+
* Description: Create and initialize menus
|
|
6
|
+
* Author: Mark Seaman, OCR Technology
|
|
7
|
+
* Created: Mon Sep 24 09:34:21 1990
|
|
8
|
+
* Modified: Mon Sep 24 09:34:34 1990 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Experimental (Do Not Distribute)
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1990, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
#ifndef MSMENUS_H
|
|
26
|
+
#define MSMENUS_H
|
|
27
|
+
|
|
28
|
+
/*---------------------------------------------------------------------------
|
|
29
|
+
Public Function Prototypes
|
|
30
|
+
----------------------------------------------------------------------------*/
|
|
31
|
+
void init_ms_debug();
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
|
35
|
+
# define _P(s) s
|
|
36
|
+
#else
|
|
37
|
+
# define _P(s) ()
|
|
38
|
+
#endif
|
|
39
|
+
|
|
40
|
+
void init_debug
|
|
41
|
+
_P((void));
|
|
42
|
+
|
|
43
|
+
#undef _P
|
|
44
|
+
*/
|
|
45
|
+
#endif
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: olutil.c (Formerly olutil.c)
|
|
5
|
+
* Description:
|
|
6
|
+
* Author: Mark Seaman, OCR Technology
|
|
7
|
+
* Created: Fri Oct 16 14:37:00 1987
|
|
8
|
+
* Modified: Fri May 17 13:11:24 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Reusable Software Component
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
/*----------------------------------------------------------------------
|
|
26
|
+
I n c l u d e s
|
|
27
|
+
----------------------------------------------------------------------*/
|
|
28
|
+
#include "olutil.h"
|
|
29
|
+
#include "structures.h"
|
|
30
|
+
#include "blobs.h"
|
|
31
|
+
#include "const.h"
|
|
32
|
+
|
|
33
|
+
#ifdef __UNIX__
|
|
34
|
+
#include <assert.h>
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
/*----------------------------------------------------------------------
|
|
38
|
+
F u n c t i o n s
|
|
39
|
+
----------------------------------------------------------------------*/
|
|
40
|
+
/**********************************************************************
|
|
41
|
+
* check_outline_mem
|
|
42
|
+
*
|
|
43
|
+
* Check the memory allocator for outlines.
|
|
44
|
+
**********************************************************************/
|
|
45
|
+
void check_outline_mem() {
|
|
46
|
+
TESSLINE *outline;
|
|
47
|
+
|
|
48
|
+
outline = newoutline ();
|
|
49
|
+
outline->next = newoutline ();
|
|
50
|
+
oldoutline (outline->next);
|
|
51
|
+
oldoutline(outline);
|
|
52
|
+
|
|
53
|
+
outline = newoutline ();
|
|
54
|
+
outline->next = newoutline ();
|
|
55
|
+
oldoutline (outline->next);
|
|
56
|
+
oldoutline(outline);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**********************************************************************
|
|
61
|
+
* correct_blob_order
|
|
62
|
+
*
|
|
63
|
+
* Check to see if the blobs are in the correct order. If they are not
|
|
64
|
+
* then swap which outlines are attached to which blobs.
|
|
65
|
+
**********************************************************************/
|
|
66
|
+
void correct_blob_order(TBLOB *blob1, TBLOB *blob2) {
|
|
67
|
+
TPOINT origin1;
|
|
68
|
+
TPOINT origin2;
|
|
69
|
+
TESSLINE *temp;
|
|
70
|
+
|
|
71
|
+
blob_origin(blob1, &origin1);
|
|
72
|
+
blob_origin(blob2, &origin2);
|
|
73
|
+
|
|
74
|
+
if (origin1.x > origin2.x) {
|
|
75
|
+
temp = blob2->outlines;
|
|
76
|
+
blob2->outlines = blob1->outlines;
|
|
77
|
+
blob1->outlines = temp;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
/**********************************************************************
|
|
83
|
+
* eliminate_duplicate_outlines
|
|
84
|
+
*
|
|
85
|
+
* Find and delete any duplicate outline records in this blob.
|
|
86
|
+
**********************************************************************/
|
|
87
|
+
void eliminate_duplicate_outlines(TBLOB *blob) {
|
|
88
|
+
TESSLINE *outline;
|
|
89
|
+
TESSLINE *other_outline;
|
|
90
|
+
TESSLINE *last_outline;
|
|
91
|
+
|
|
92
|
+
for (outline = blob->outlines; outline; outline = outline->next) {
|
|
93
|
+
|
|
94
|
+
for (last_outline = outline, other_outline = outline->next;
|
|
95
|
+
other_outline;
|
|
96
|
+
last_outline = other_outline, other_outline = other_outline->next) {
|
|
97
|
+
|
|
98
|
+
if (same_outline_bounds (outline, other_outline)) {
|
|
99
|
+
last_outline->next = other_outline->next;
|
|
100
|
+
oldoutline(other_outline);
|
|
101
|
+
other_outline = last_outline;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
/**********************************************************************
|
|
109
|
+
* setup_outline
|
|
110
|
+
*
|
|
111
|
+
* Create a new outline structure from this
|
|
112
|
+
**********************************************************************/
|
|
113
|
+
void setup_outline(TESSLINE *outline) {
|
|
114
|
+
register EDGEPT *this_edge;
|
|
115
|
+
register int minx = MAX_INT32;
|
|
116
|
+
register int miny = MAX_INT32;
|
|
117
|
+
register int maxx = -MAX_INT32;
|
|
118
|
+
register int maxy = -MAX_INT32;
|
|
119
|
+
|
|
120
|
+
/* Find boundaries */
|
|
121
|
+
this_edge = outline->loop;
|
|
122
|
+
do {
|
|
123
|
+
if (this_edge->pos.x < minx)
|
|
124
|
+
minx = this_edge->pos.x;
|
|
125
|
+
if (this_edge->pos.y < miny)
|
|
126
|
+
miny = this_edge->pos.y;
|
|
127
|
+
if (this_edge->pos.x > maxx)
|
|
128
|
+
maxx = this_edge->pos.x;
|
|
129
|
+
if (this_edge->pos.y > maxy)
|
|
130
|
+
maxy = this_edge->pos.y;
|
|
131
|
+
this_edge = this_edge->next;
|
|
132
|
+
}
|
|
133
|
+
while (this_edge != outline->loop);
|
|
134
|
+
/* Reset bounds */
|
|
135
|
+
outline->topleft.x = minx;
|
|
136
|
+
outline->topleft.y = maxy;
|
|
137
|
+
outline->botright.x = maxx;
|
|
138
|
+
outline->botright.y = miny;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
/**********************************************************************
|
|
143
|
+
* setup_blob_outlines
|
|
144
|
+
*
|
|
145
|
+
* Set up each of the outlines in this blob.
|
|
146
|
+
**********************************************************************/
|
|
147
|
+
void setup_blob_outlines(TBLOB *blob) {
|
|
148
|
+
TESSLINE *outline;
|
|
149
|
+
|
|
150
|
+
for (outline = blob->outlines; outline; outline = outline->next) {
|
|
151
|
+
setup_outline(outline);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: olutil.h (Formerly olutil.h)
|
|
5
|
+
* Description:
|
|
6
|
+
* Author: Mark Seaman, SW Productivity
|
|
7
|
+
* Created: Fri Oct 16 14:37:00 1987
|
|
8
|
+
* Modified: Wed Jul 10 14:21:55 1991 (Mark Seaman) marks@hpgrlt
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Reusable Software Component
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
#ifndef OLUTIL_H
|
|
26
|
+
#define OLUTIL_H
|
|
27
|
+
|
|
28
|
+
/*----------------------------------------------------------------------
|
|
29
|
+
I n c l u d e s
|
|
30
|
+
----------------------------------------------------------------------*/
|
|
31
|
+
#include "tessclas.h"
|
|
32
|
+
#include "general.h"
|
|
33
|
+
|
|
34
|
+
/*----------------------------------------------------------------------
|
|
35
|
+
M a c r o s
|
|
36
|
+
----------------------------------------------------------------------*/
|
|
37
|
+
/**********************************************************************
|
|
38
|
+
* is_inside_angle
|
|
39
|
+
*
|
|
40
|
+
* Return true if the edgept supplied as input is an inside angle. This
|
|
41
|
+
* is determined by the angular change of the vectors from point to
|
|
42
|
+
* point.
|
|
43
|
+
|
|
44
|
+
**********************************************************************/
|
|
45
|
+
|
|
46
|
+
#define is_inside_angle(pt) \
|
|
47
|
+
(angle_change ((pt)->prev, (pt), (pt)->next) < inside_angle)
|
|
48
|
+
|
|
49
|
+
/**********************************************************************
|
|
50
|
+
* point_in_outline
|
|
51
|
+
*
|
|
52
|
+
* Check to see if this point falls within the bounding box of this
|
|
53
|
+
* outline. Note that this does not totally ensure that the edge
|
|
54
|
+
* point falls on this outline.
|
|
55
|
+
**********************************************************************/
|
|
56
|
+
|
|
57
|
+
#define point_in_outline(p,o) \
|
|
58
|
+
((p)->pos.x >= (o)->topleft.x && \
|
|
59
|
+
(p)->pos.y <= (o)->topleft.y && \
|
|
60
|
+
(p)->pos.x <= (o)->botright.x && \
|
|
61
|
+
(p)->pos.y >= (o)->botright.y) \
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
/**********************************************************************
|
|
65
|
+
* same_outline_bounds
|
|
66
|
+
*
|
|
67
|
+
* Return TRUE if these two outlines have the same bounds.
|
|
68
|
+
**********************************************************************/
|
|
69
|
+
|
|
70
|
+
#define same_outline_bounds(outline,other_outline) \
|
|
71
|
+
(outline->topleft.x == other_outline->topleft.x && \
|
|
72
|
+
outline->topleft.y == other_outline->topleft.y && \
|
|
73
|
+
outline->botright.x == other_outline->botright.x && \
|
|
74
|
+
outline->botright.y == other_outline->botright.y) \
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
/**********************************************************************
|
|
78
|
+
* weighted_edgept_dist
|
|
79
|
+
*
|
|
80
|
+
* Return the distance (squared) between the two edge points.
|
|
81
|
+
**********************************************************************/
|
|
82
|
+
|
|
83
|
+
#define weighted_edgept_dist(p1,p2,x_y_weight) \
|
|
84
|
+
(((p1)->pos.x - (p2)->pos.x) * \
|
|
85
|
+
((p1)->pos.x - (p2)->pos.x) * x_y_weight + \
|
|
86
|
+
((p1)->pos.y - (p2)->pos.y) * \
|
|
87
|
+
((p1)->pos.y - (p2)->pos.y))
|
|
88
|
+
|
|
89
|
+
/*----------------------------------------------------------------------
|
|
90
|
+
F u n c t i o n s
|
|
91
|
+
----------------------------------------------------------------------*/
|
|
92
|
+
void check_outline_mem();
|
|
93
|
+
|
|
94
|
+
void correct_blob_order(TBLOB *blob1, TBLOB *blob2);
|
|
95
|
+
|
|
96
|
+
void eliminate_duplicate_outlines(TBLOB *blob);
|
|
97
|
+
|
|
98
|
+
void setup_outline(TESSLINE *outline);
|
|
99
|
+
|
|
100
|
+
void setup_blob_outlines(TBLOB *blob);
|
|
101
|
+
|
|
102
|
+
/*
|
|
103
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
|
104
|
+
# define _ARGS(s) s
|
|
105
|
+
#else
|
|
106
|
+
# define _ARGS(s) ()
|
|
107
|
+
#endif*/
|
|
108
|
+
|
|
109
|
+
/* olutil.c
|
|
110
|
+
void check_outline_mem
|
|
111
|
+
_ARGS((void));
|
|
112
|
+
|
|
113
|
+
void correct_blob_order
|
|
114
|
+
_ARGS((BLOB *blob1,
|
|
115
|
+
BLOB *blob2));
|
|
116
|
+
|
|
117
|
+
void eliminate_duplicate_outlines
|
|
118
|
+
_ARGS((BLOB *blob));
|
|
119
|
+
|
|
120
|
+
void setup_outline
|
|
121
|
+
_ARGS((TESSLINE *outline));
|
|
122
|
+
|
|
123
|
+
void setup_blob_outlines
|
|
124
|
+
_ARGS((BLOB *blob));
|
|
125
|
+
|
|
126
|
+
#undef _ARGS
|
|
127
|
+
*/
|
|
128
|
+
#endif
|