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,87 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: flexfx.c
|
3
|
+
** Purpose: Interface to flexible feature extractor.
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Wed May 23 13:45:10 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
|
+
/**----------------------------------------------------------------------------
|
19
|
+
Include Files and Type Defines
|
20
|
+
----------------------------------------------------------------------------**/
|
21
|
+
#include "flexfx.h"
|
22
|
+
#include "featdefs.h"
|
23
|
+
#include "variables.h"
|
24
|
+
#include "sigmenu.h"
|
25
|
+
#include "emalloc.h"
|
26
|
+
#include <string.h>
|
27
|
+
#include <stdio.h>
|
28
|
+
|
29
|
+
/**----------------------------------------------------------------------------
|
30
|
+
Public Code
|
31
|
+
----------------------------------------------------------------------------**/
|
32
|
+
/*---------------------------------------------------------------------------*/
|
33
|
+
CHAR_DESC ExtractFlexFeatures(TBLOB *Blob, LINE_STATS *LineStats) {
|
34
|
+
/*
|
35
|
+
** Parameters:
|
36
|
+
** Blob blob to extract features from
|
37
|
+
** LineStats statistics about text line Blob is on
|
38
|
+
** Globals: none
|
39
|
+
** Operation: Allocate a new character descriptor and fill it in by
|
40
|
+
** calling all feature extractors which are enabled.
|
41
|
+
** Return: Structure containing features extracted from Blob.
|
42
|
+
** Exceptions: none
|
43
|
+
** History: Wed May 23 13:46:22 1990, DSJ, Created.
|
44
|
+
*/
|
45
|
+
int Type;
|
46
|
+
CHAR_DESC CharDesc;
|
47
|
+
|
48
|
+
CharDesc = NewCharDescription ();
|
49
|
+
|
50
|
+
for (Type = 0; Type < CharDesc->NumFeatureSets; Type++)
|
51
|
+
if (FeatureDefs.FeatureExtractors[Type] != NULL &&
|
52
|
+
FeatureDefs.FeatureExtractors[Type]->Extractor != NULL)
|
53
|
+
CharDesc->FeatureSets[Type] =
|
54
|
+
(FeatureDefs.FeatureExtractors[Type])->Extractor (Blob, LineStats);
|
55
|
+
|
56
|
+
return (CharDesc);
|
57
|
+
|
58
|
+
} /* ExtractFlexFeatures */
|
59
|
+
|
60
|
+
|
61
|
+
/*---------------------------------------------------------------------------*/
|
62
|
+
void
|
63
|
+
InitFlexFXVars ()
|
64
|
+
/*
|
65
|
+
** Parameters: none
|
66
|
+
** Globals: none
|
67
|
+
** Operation: Add any control variables used by the feature extractors
|
68
|
+
** to the variable system. This includes the enable flag for
|
69
|
+
** each individual extractor. This routine needs to create
|
70
|
+
** a separate name for the enable for each feature extractor
|
71
|
+
** and allocate a string to contain that name. This is
|
72
|
+
** necessary since the "variables" routines do not create
|
73
|
+
** copies of the string names passed to them.
|
74
|
+
** Return: none
|
75
|
+
** Exceptions: none
|
76
|
+
** History: Wed May 23 15:59:23 1990, DSJ, Created.
|
77
|
+
*/
|
78
|
+
#define NamePrefix "Enable"
|
79
|
+
#define NameSuffix "Features"
|
80
|
+
{
|
81
|
+
int Type;
|
82
|
+
|
83
|
+
SetupExtractors();
|
84
|
+
for (Type = 0; Type < FeatureDefs.NumFeatureTypes; Type++) {
|
85
|
+
(FeatureDefs.FeatureExtractors[Type])->InitExtractorVars ();
|
86
|
+
}
|
87
|
+
} /* InitFlexFXVars */
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: flexfx.h
|
3
|
+
** Purpose: Interface to flexible feature extractor.
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Wed May 23 13:36:58 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 FLEXFX_H
|
19
|
+
#define FLEXFX_H
|
20
|
+
|
21
|
+
/**----------------------------------------------------------------------------
|
22
|
+
Include Files and Type Defines
|
23
|
+
----------------------------------------------------------------------------**/
|
24
|
+
#include "fxdefs.h"
|
25
|
+
#include "featdefs.h"
|
26
|
+
#include <stdio.h>
|
27
|
+
|
28
|
+
/**----------------------------------------------------------------------------
|
29
|
+
Public Function Prototypes
|
30
|
+
----------------------------------------------------------------------------**/
|
31
|
+
CHAR_DESC ExtractFlexFeatures(TBLOB *Blob, LINE_STATS *LineStats);
|
32
|
+
|
33
|
+
void InitFlexFXVars();
|
34
|
+
#endif
|
@@ -0,0 +1,126 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: float2int.c
|
3
|
+
** Purpose: Routines for converting float features to int features
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Wed Mar 13 07:47:48 1991, 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
|
+
/**----------------------------------------------------------------------------
|
19
|
+
Include Files and Type Defines
|
20
|
+
----------------------------------------------------------------------------**/
|
21
|
+
#include "float2int.h"
|
22
|
+
#include "normmatch.h"
|
23
|
+
#include "mfoutline.h"
|
24
|
+
#include "picofeat.h"
|
25
|
+
|
26
|
+
#define MAX_INT_CHAR_NORM (INT_CHAR_NORM_RANGE - 1)
|
27
|
+
|
28
|
+
/**----------------------------------------------------------------------------
|
29
|
+
Public Code
|
30
|
+
----------------------------------------------------------------------------**/
|
31
|
+
/*---------------------------------------------------------------------------*/
|
32
|
+
void ClearCharNormArray(INT_TEMPLATES Templates,
|
33
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray) {
|
34
|
+
/*
|
35
|
+
** Parameters:
|
36
|
+
** Templates specifies classes currently defined
|
37
|
+
** CharNormArray array to be cleared
|
38
|
+
** Globals: none
|
39
|
+
** Operation: For each class in Templates, clear the corresponding
|
40
|
+
** entry in CharNormArray. CharNormArray is indexed by class
|
41
|
+
** indicies (as obtained from Templates) rather than class id's.
|
42
|
+
** Return: none
|
43
|
+
** Exceptions: none
|
44
|
+
** History: Wed Feb 20 11:20:54 1991, DSJ, Created.
|
45
|
+
*/
|
46
|
+
int i;
|
47
|
+
|
48
|
+
for (i = 0; i < Templates->NumClasses; i++) {
|
49
|
+
CharNormArray[i] = 0;
|
50
|
+
}
|
51
|
+
|
52
|
+
} /* ClearCharNormArray */
|
53
|
+
|
54
|
+
|
55
|
+
/*---------------------------------------------------------------------------*/
|
56
|
+
void ComputeIntCharNormArray(FEATURE NormFeature,
|
57
|
+
INT_TEMPLATES Templates,
|
58
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray) {
|
59
|
+
/*
|
60
|
+
** Parameters:
|
61
|
+
** NormFeature character normalization feature
|
62
|
+
** Templates specifies classes currently defined
|
63
|
+
** CharNormArray place to put results
|
64
|
+
** Globals: none
|
65
|
+
** Operation: For each class in Templates, compute the match between
|
66
|
+
** NormFeature and the normalization protos for that class.
|
67
|
+
** Convert this number to the range from 0 - 255 and store it
|
68
|
+
** into CharNormArray. CharNormArray is indexed by class
|
69
|
+
** indicies (as obtained from Templates) rather than class id's.
|
70
|
+
** Return: none (results are returned in CharNormArray)
|
71
|
+
** Exceptions: none
|
72
|
+
** History: Wed Feb 20 11:20:54 1991, DSJ, Created.
|
73
|
+
*/
|
74
|
+
int i;
|
75
|
+
int NormAdjust;
|
76
|
+
|
77
|
+
for (i = 0; i < Templates->NumClasses; i++) {
|
78
|
+
NormAdjust = (int) (INT_CHAR_NORM_RANGE *
|
79
|
+
ComputeNormMatch (Templates->ClassIdFor[i],
|
80
|
+
NormFeature, FALSE));
|
81
|
+
if (NormAdjust < 0)
|
82
|
+
NormAdjust = 0;
|
83
|
+
else if (NormAdjust > MAX_INT_CHAR_NORM)
|
84
|
+
NormAdjust = MAX_INT_CHAR_NORM;
|
85
|
+
|
86
|
+
CharNormArray[i] = NormAdjust;
|
87
|
+
}
|
88
|
+
|
89
|
+
} /* ComputeIntCharNormArray */
|
90
|
+
|
91
|
+
|
92
|
+
/*---------------------------------------------------------------------------*/
|
93
|
+
void ComputeIntFeatures(FEATURE_SET Features, INT_FEATURE_ARRAY IntFeatures) {
|
94
|
+
/*
|
95
|
+
** Parameters:
|
96
|
+
** Features floating point pico-features to be converted
|
97
|
+
** IntFeatures array to put converted features into
|
98
|
+
** Globals: none
|
99
|
+
** Operation: This routine converts each floating point pico-feature
|
100
|
+
** in Features into integer format and saves it into
|
101
|
+
** IntFeatures.
|
102
|
+
** Return: none (results are returned in IntFeatures)
|
103
|
+
** Exceptions: none
|
104
|
+
** History: Wed Feb 20 10:58:45 1991, DSJ, Created.
|
105
|
+
*/
|
106
|
+
int Fid;
|
107
|
+
FEATURE Feature;
|
108
|
+
FLOAT32 YShift;
|
109
|
+
|
110
|
+
if (NormMethod == baseline)
|
111
|
+
YShift = BASELINE_Y_SHIFT;
|
112
|
+
else
|
113
|
+
YShift = Y_SHIFT;
|
114
|
+
|
115
|
+
for (Fid = 0; Fid < Features->NumFeatures; Fid++) {
|
116
|
+
Feature = Features->Features[Fid];
|
117
|
+
|
118
|
+
IntFeatures[Fid].X = BucketFor (Feature->Params[PicoFeatX],
|
119
|
+
X_SHIFT, INT_FEAT_RANGE);
|
120
|
+
IntFeatures[Fid].Y = BucketFor (Feature->Params[PicoFeatY],
|
121
|
+
YShift, INT_FEAT_RANGE);
|
122
|
+
IntFeatures[Fid].Theta = CircBucketFor (Feature->Params[PicoFeatDir],
|
123
|
+
ANGLE_SHIFT, INT_FEAT_RANGE);
|
124
|
+
IntFeatures[Fid].CP_misses = 0;
|
125
|
+
}
|
126
|
+
} /* ComputeIntFeatures */
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: float2int.h
|
3
|
+
** Purpose: Routines for converting float features to int features
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Wed Mar 13 08:06:41 1991, 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 FLOAT2INT_H
|
19
|
+
#define FLOAT2INT_H
|
20
|
+
|
21
|
+
/**----------------------------------------------------------------------------
|
22
|
+
Include Files and Type Defines
|
23
|
+
----------------------------------------------------------------------------**/
|
24
|
+
#include "intmatcher.h"
|
25
|
+
#include "ocrfeatures.h"
|
26
|
+
|
27
|
+
#define INT_FEAT_RANGE 256
|
28
|
+
#define BASELINE_Y_SHIFT (0.25)
|
29
|
+
|
30
|
+
/**----------------------------------------------------------------------------
|
31
|
+
Public Function Prototypes
|
32
|
+
----------------------------------------------------------------------------**/
|
33
|
+
void ClearCharNormArray(INT_TEMPLATES Templates,
|
34
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray);
|
35
|
+
|
36
|
+
void ComputeIntCharNormArray(FEATURE NormFeature,
|
37
|
+
INT_TEMPLATES Templates,
|
38
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray);
|
39
|
+
|
40
|
+
void ComputeIntFeatures(FEATURE_SET Features, INT_FEATURE_ARRAY IntFeatures);
|
41
|
+
|
42
|
+
/*
|
43
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
44
|
+
# define _ARGS(s) s
|
45
|
+
#else
|
46
|
+
# define _ARGS(s) ()
|
47
|
+
#endif*/
|
48
|
+
|
49
|
+
/* float2int.c
|
50
|
+
void ClearCharNormArray
|
51
|
+
_ARGS((INT_TEMPLATES Templates,
|
52
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray));
|
53
|
+
|
54
|
+
void ComputeIntCharNormArray
|
55
|
+
_ARGS((FEATURE NormFeature,
|
56
|
+
INT_TEMPLATES Templates,
|
57
|
+
CLASS_NORMALIZATION_ARRAY CharNormArray));
|
58
|
+
|
59
|
+
void ComputeIntFeatures
|
60
|
+
_ARGS((FEATURE_SET Features,
|
61
|
+
INT_FEATURE_ARRAY IntFeatures));
|
62
|
+
|
63
|
+
#undef _ARGS
|
64
|
+
*/
|
65
|
+
#endif
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: fpoint.c
|
3
|
+
** Purpose: Abstract data type for a 2D point (floating point coords)
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Thu Apr 12 10:44:15 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
|
+
/**----------------------------------------------------------------------------
|
19
|
+
Include Files and Type Defines
|
20
|
+
----------------------------------------------------------------------------**/
|
21
|
+
#include "const.h"
|
22
|
+
#include "fpoint.h"
|
23
|
+
#include <stdio.h>
|
24
|
+
#include <math.h>
|
25
|
+
|
26
|
+
/**----------------------------------------------------------------------------
|
27
|
+
Public Code
|
28
|
+
----------------------------------------------------------------------------**/
|
29
|
+
/*---------------------------------------------------------------------------*/
|
30
|
+
|
31
|
+
void FillPoint(FPOINT &P, FLOAT32 X, FLOAT32 Y) {
|
32
|
+
P.x = X;
|
33
|
+
P.y = Y;
|
34
|
+
}
|
35
|
+
/* Commented out, because there is also a same function for TPOINT and this gets resolved to it.
|
36
|
+
void CopyPoint(FPOINT &A, FPOINT &B) {
|
37
|
+
B.x = A.x;
|
38
|
+
B.y = A.y;
|
39
|
+
}
|
40
|
+
*/
|
41
|
+
FLOAT32 DistanceBetween(FPOINT A, FPOINT B) {
|
42
|
+
return sqrt ((double) (XDelta(A,B) * XDelta(A,B) + YDelta(A,B) * YDelta(A,B)));
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
FLOAT32 NormalizedAngleFrom(FPOINT *Point1,
|
48
|
+
FPOINT *Point2,
|
49
|
+
FLOAT32 FullScale) {
|
50
|
+
/*
|
51
|
+
** Parameters:
|
52
|
+
** Point1, Point2 points to compute angle between
|
53
|
+
** FullScale value to associate with 2*pi
|
54
|
+
** Globals: none
|
55
|
+
** Operation: Return the angle from Point1 to Point2 normalized to
|
56
|
+
** lie in the range 0 to FullScale (where FullScale corresponds
|
57
|
+
** to 2*pi or 360 degrees).
|
58
|
+
** Return: none
|
59
|
+
** Exceptions: none
|
60
|
+
** History: Wed Mar 28 14:27:25 1990, DSJ, Created.
|
61
|
+
*/
|
62
|
+
FLOAT32 Angle;
|
63
|
+
FLOAT32 NumRadsInCircle = 2.0 * PI;
|
64
|
+
|
65
|
+
Angle = AngleFrom (*Point1, *Point2);
|
66
|
+
if (Angle < 0.0)
|
67
|
+
Angle += NumRadsInCircle;
|
68
|
+
Angle *= FullScale / NumRadsInCircle;
|
69
|
+
if (Angle < 0.0 || Angle >= FullScale)
|
70
|
+
Angle = 0.0;
|
71
|
+
return (Angle);
|
72
|
+
|
73
|
+
} /* NormalizedAngleFrom */
|
@@ -0,0 +1,63 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: fpoint.h
|
3
|
+
** Purpose: Abstract data type for 2D points (floating point coords)
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Thu Apr 12 10:50:01 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 FPOINT_H
|
19
|
+
#define FPOINT_H
|
20
|
+
|
21
|
+
/**----------------------------------------------------------------------------
|
22
|
+
Include Files and Type Defines
|
23
|
+
----------------------------------------------------------------------------**/
|
24
|
+
#include "general.h"
|
25
|
+
#include <stdio.h>
|
26
|
+
#include <math.h>
|
27
|
+
|
28
|
+
/* define data structure to hold 2D points or vectors using floating point */
|
29
|
+
typedef struct
|
30
|
+
{
|
31
|
+
FLOAT32 x, y;
|
32
|
+
} FPOINT;
|
33
|
+
typedef FPOINT FVECTOR;
|
34
|
+
|
35
|
+
/**----------------------------------------------------------------------------
|
36
|
+
Macros
|
37
|
+
----------------------------------------------------------------------------**/
|
38
|
+
/* macros for manipulating simple point data structures */
|
39
|
+
//#define Xof(P) ( (P).x )
|
40
|
+
//#define Yof(P) ( (P).y )
|
41
|
+
//#define YofP(P) ((P)->y)
|
42
|
+
//#define XofP(P) ((P)->x)
|
43
|
+
|
44
|
+
/* macros for computing miscellaneous functions of 2 points */
|
45
|
+
#define XDelta(A,B) ( (B).x - (A).x )
|
46
|
+
#define YDelta(A,B) ( (B).y - (A).y )
|
47
|
+
#define CopyPoint(A, B) ((B).x = (A).x, (B).y = (A).y) // FIXME, gets expanded for FPOINT and TPOINT.
|
48
|
+
#define SlopeFrom(A,B) ( YDelta(A,B) / XDelta(A,B) )
|
49
|
+
#define AngleFrom(A,B) ( atan2((double) YDelta(A,B), \
|
50
|
+
(double) XDelta(A,B) ) )
|
51
|
+
|
52
|
+
#define XIntersectionOf(A,B,X) ( SlopeFrom(A,B) * ((X) - A.x) + A.y)
|
53
|
+
|
54
|
+
/*-------------------------------------------------------------------------
|
55
|
+
Public Function Prototypes
|
56
|
+
---------------------------------------------------------------------------*/
|
57
|
+
|
58
|
+
void FillPoint(FPOINT &P, FLOAT32 X, FLOAT32 Y);
|
59
|
+
|
60
|
+
FLOAT32 DistanceBetween(FPOINT A, FPOINT B);
|
61
|
+
|
62
|
+
FLOAT32 NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, FLOAT32 FullScale);
|
63
|
+
#endif
|
@@ -0,0 +1,74 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: fxdefs.c
|
3
|
+
** Purpose: Utility functions to be used by feature extractors.
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Sun Jan 21 15:29:02 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 "fxdefs.h"
|
19
|
+
#include "featdefs.h"
|
20
|
+
#include "mf.h"
|
21
|
+
#include "outfeat.h"
|
22
|
+
#include "picofeat.h"
|
23
|
+
#include "normfeat.h"
|
24
|
+
|
25
|
+
/**----------------------------------------------------------------------------
|
26
|
+
Global Data Definitions and Declarations
|
27
|
+
----------------------------------------------------------------------------**/
|
28
|
+
/* flag to control learn mode vs. classify mode */
|
29
|
+
int ExtractMode;
|
30
|
+
|
31
|
+
// Definitions of extractors separated from feature definitions.
|
32
|
+
DefineFeatureExt (MicroFeatureExt, ExtractMicros, InitMicroFXVars)
|
33
|
+
DefineFeatureExt (PicoFeatExt, NULL, DefaultInitFXVars)
|
34
|
+
DefineFeatureExt (CharNormExt, ExtractCharNormFeatures, DefaultInitFXVars)
|
35
|
+
DefineFeatureExt (OutlineFeatExt, NULL, DefaultInitFXVars)
|
36
|
+
|
37
|
+
FEATURE_EXT_STRUCT* ExtractorDefs[NUM_FEATURE_TYPES] = {
|
38
|
+
&MicroFeatureExt,
|
39
|
+
&PicoFeatExt,
|
40
|
+
&OutlineFeatExt,
|
41
|
+
&CharNormExt
|
42
|
+
};
|
43
|
+
|
44
|
+
|
45
|
+
/**----------------------------------------------------------------------------
|
46
|
+
Public Code
|
47
|
+
----------------------------------------------------------------------------**/
|
48
|
+
/*---------------------------------------------------------------------------*/
|
49
|
+
void SetupExtractors() {
|
50
|
+
for (int i = 0; i < NUM_FEATURE_TYPES; ++i)
|
51
|
+
FeatureDefs.FeatureExtractors[i] = ExtractorDefs[i];
|
52
|
+
}
|
53
|
+
|
54
|
+
void GetLineStatsFromRow(TEXTROW *Row, LINE_STATS *LineStats) {
|
55
|
+
/*
|
56
|
+
** Parameters:
|
57
|
+
** Row text row to get line statistics from
|
58
|
+
** LineStats place to put line statistics
|
59
|
+
** Globals: none
|
60
|
+
** Operation: This routine copies the relavent fields from the
|
61
|
+
** Row struct to the LineStats struct.
|
62
|
+
** Return: none (results are returned in LineStats)
|
63
|
+
** Exceptions: none
|
64
|
+
** History: Mon Mar 11 10:38:43 1991, DSJ, Created.
|
65
|
+
*/
|
66
|
+
LineStats->Baseline = &(Row->baseline);
|
67
|
+
LineStats->XHeightLine = &(Row->xheight);
|
68
|
+
LineStats->xheight = Row->lineheight;
|
69
|
+
LineStats->AscRise = Row->ascrise;
|
70
|
+
LineStats->DescDrop = Row->descdrop;
|
71
|
+
LineStats->TextRow = Row; /* kludge - only needed by fx for */
|
72
|
+
/* fast matcher - remove later */
|
73
|
+
|
74
|
+
} /* GetLineStatsFromRow */
|
@@ -0,0 +1,93 @@
|
|
1
|
+
/******************************************************************************
|
2
|
+
** Filename: fxdefs.h
|
3
|
+
** Purpose: Generic interface definitions for feature extractors
|
4
|
+
** Author: Dan Johnson
|
5
|
+
** History: Fri Jan 19 09:04:14 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 FXDEFS_H
|
19
|
+
#define FXDEFS_H
|
20
|
+
|
21
|
+
/**----------------------------------------------------------------------------
|
22
|
+
Include Files and Type Defines
|
23
|
+
----------------------------------------------------------------------------**/
|
24
|
+
#include "tessclas.h"
|
25
|
+
#include "general.h"
|
26
|
+
|
27
|
+
/* define different modes for feature extractor - learning vs. classifying */
|
28
|
+
#define LEARN_MODE 0
|
29
|
+
#define CLASSIFY_MODE 1
|
30
|
+
|
31
|
+
/* define a data structure to hold line statistics. These line statistics
|
32
|
+
are used to normalize character outlines to a standard size and position
|
33
|
+
relative to the baseline of the text. */
|
34
|
+
typedef struct
|
35
|
+
{
|
36
|
+
SPLINE_SPEC *Baseline; /* collection of splines describing baseline */
|
37
|
+
SPLINE_SPEC *XHeightLine; /* collection of splines describing x-height */
|
38
|
+
FLOAT32 xheight; /* avg. distance from x-height to baseline */
|
39
|
+
FLOAT32 AscRise; /* avg. distance from ascenders to x-height */
|
40
|
+
FLOAT32 DescDrop; /* avg. distance from baseline to descenders */
|
41
|
+
/* always a negative number */
|
42
|
+
TEXTROW *TextRow; /* kludge - only needed by fx for fast matcher */
|
43
|
+
/* should be removed later */
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
LINE_STATS;
|
48
|
+
|
49
|
+
/* define a generic character description as a char pointer. In reality,
|
50
|
+
it will be a pointer to some data structure. Paired feature
|
51
|
+
extractors/matchers need to agree on the data structure to be used,
|
52
|
+
however, the high level classifier does not need to know the details
|
53
|
+
of this data structure. */
|
54
|
+
typedef char *CHAR_FEATURES;
|
55
|
+
|
56
|
+
/**----------------------------------------------------------------------------
|
57
|
+
Macros
|
58
|
+
----------------------------------------------------------------------------**/
|
59
|
+
/* macro to change and monitor the mode of the feature extractor.
|
60
|
+
In general, learn mode smears features which would otherwise be discrete
|
61
|
+
in nature; classify mode does not.*/
|
62
|
+
#define SetExtractMode(M) (ExtractMode = (M))
|
63
|
+
#define EnterLearnMode (SetExtractMode (LEARN_MODE))
|
64
|
+
#define EnterClassifyMode (SetExtractMode (CLASSIFY_MODE))
|
65
|
+
|
66
|
+
/*----------------------------------------------------------------------------
|
67
|
+
Public Function Prototypes
|
68
|
+
-----------------------------------------------------------------------------*/
|
69
|
+
void SetupExtractors();
|
70
|
+
|
71
|
+
void GetLineStatsFromRow(TEXTROW *Row, LINE_STATS *LineStats);
|
72
|
+
|
73
|
+
/*
|
74
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
75
|
+
# define _ARGS(s) s
|
76
|
+
#else
|
77
|
+
# define _ARGS(s) ()
|
78
|
+
#endif*/
|
79
|
+
|
80
|
+
/* fxdefs.c
|
81
|
+
void GetLineStatsFromRow
|
82
|
+
_ARGS((TEXTROW *Row,
|
83
|
+
LINE_STATS *LineStats));
|
84
|
+
|
85
|
+
#undef _ARGS
|
86
|
+
*/
|
87
|
+
|
88
|
+
/**----------------------------------------------------------------------------
|
89
|
+
Global Data Definitions and Declarations
|
90
|
+
----------------------------------------------------------------------------**/
|
91
|
+
/* flag to control learn mode vs. classify mode */
|
92
|
+
extern int ExtractMode;
|
93
|
+
#endif
|