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,166 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: name2char.c
|
|
3
|
+
** Purpose: Routines to convert between classes and class names.
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Fri Feb 23 08:03:09 1990, DSJ, Created.
|
|
6
|
+
**
|
|
7
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
** you may not use this file except in compliance with the License.
|
|
9
|
+
** You may obtain a copy of the License at
|
|
10
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
** See the License for the specific language governing permissions and
|
|
15
|
+
** limitations under the License.
|
|
16
|
+
******************************************************************************/
|
|
17
|
+
/**----------------------------------------------------------------------------
|
|
18
|
+
Include Files and Type Defines
|
|
19
|
+
----------------------------------------------------------------------------**/
|
|
20
|
+
#include "name2char.h"
|
|
21
|
+
#include "matchdefs.h"
|
|
22
|
+
#include "danerror.h"
|
|
23
|
+
#include <string.h>
|
|
24
|
+
|
|
25
|
+
#define ILLEGALCHARNAME 6001
|
|
26
|
+
|
|
27
|
+
/**----------------------------------------------------------------------------
|
|
28
|
+
Global Data Definitions and Declarations
|
|
29
|
+
----------------------------------------------------------------------------**/
|
|
30
|
+
/* character ID (ascii code) to character name mapping */
|
|
31
|
+
static const char *NameList[]={
|
|
32
|
+
"!bang",
|
|
33
|
+
"\"doubleq",
|
|
34
|
+
"#hash",
|
|
35
|
+
"$dollar",
|
|
36
|
+
"%percent",
|
|
37
|
+
"&and",
|
|
38
|
+
"'quote",
|
|
39
|
+
"(lround",
|
|
40
|
+
")rround",
|
|
41
|
+
"*asterisk",
|
|
42
|
+
"+plus",
|
|
43
|
+
",comma",
|
|
44
|
+
"-minus",
|
|
45
|
+
".dot",
|
|
46
|
+
"/slash",
|
|
47
|
+
":colon",
|
|
48
|
+
";semic",
|
|
49
|
+
"<less",
|
|
50
|
+
"=equal",
|
|
51
|
+
">greater",
|
|
52
|
+
"?question",
|
|
53
|
+
"@at",
|
|
54
|
+
"[lsquare",
|
|
55
|
+
"\\backsl",
|
|
56
|
+
"]rsquare",
|
|
57
|
+
"^uparr",
|
|
58
|
+
"_unders",
|
|
59
|
+
"`grave",
|
|
60
|
+
"{lbrace",
|
|
61
|
+
"|bar",
|
|
62
|
+
"}rbrace",
|
|
63
|
+
"~tilde",
|
|
64
|
+
"AcA",
|
|
65
|
+
"BcB",
|
|
66
|
+
"CcC",
|
|
67
|
+
"DcD",
|
|
68
|
+
"EcE",
|
|
69
|
+
"FcF",
|
|
70
|
+
"GcG",
|
|
71
|
+
"HcH",
|
|
72
|
+
"IcI",
|
|
73
|
+
"JcJ",
|
|
74
|
+
"KcK",
|
|
75
|
+
"LcL",
|
|
76
|
+
"McM",
|
|
77
|
+
"NcN",
|
|
78
|
+
"OcO",
|
|
79
|
+
"PcP",
|
|
80
|
+
"QcQ",
|
|
81
|
+
"RcR",
|
|
82
|
+
"ScS",
|
|
83
|
+
"TcT",
|
|
84
|
+
"UcU",
|
|
85
|
+
"VcV",
|
|
86
|
+
"WcW",
|
|
87
|
+
"XcX",
|
|
88
|
+
"YcY",
|
|
89
|
+
"ZcZ",
|
|
90
|
+
NULL
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
/**----------------------------------------------------------------------------
|
|
95
|
+
Public Code
|
|
96
|
+
----------------------------------------------------------------------------**/
|
|
97
|
+
/*---------------------------------------------------------------------------*/
|
|
98
|
+
CLASS_ID NameToChar (
|
|
99
|
+
char CharName[])
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
** Parameters:
|
|
103
|
+
** CharName character name to convert to a character
|
|
104
|
+
** Globals:
|
|
105
|
+
** NameList lookup table for name to char mapping
|
|
106
|
+
** Operation:
|
|
107
|
+
** This routine converts the specified character name to
|
|
108
|
+
** an ascii character.
|
|
109
|
+
** Return: Ascii character that corresponds to the character name.
|
|
110
|
+
** Exceptions: ILLEGALCHARNAME
|
|
111
|
+
** History: Sat Aug 26 12:26:54 1989, DSJ, Created.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
{
|
|
115
|
+
int i;
|
|
116
|
+
|
|
117
|
+
// look for name in table and return character if found
|
|
118
|
+
for ( i = 0; NameList[i] != NULL; i++ )
|
|
119
|
+
if ( strcmp (CharName, &NameList[i][1]) == 0)
|
|
120
|
+
return (NameList[i][0]);
|
|
121
|
+
if ( strlen (CharName) == 1 )
|
|
122
|
+
return (CharName[0]); //name is not in table but is a single character
|
|
123
|
+
else //illegal character
|
|
124
|
+
{
|
|
125
|
+
DoError (ILLEGALCHARNAME, "Illegal character name");
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
} /* NameToChar */
|
|
129
|
+
|
|
130
|
+
/*---------------------------------------------------------------------------*/
|
|
131
|
+
void CharToName (
|
|
132
|
+
CLASS_ID Char,
|
|
133
|
+
char CharName[])
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
** Parameters:
|
|
137
|
+
** Char character to map to a character name
|
|
138
|
+
** CharName string to copy character name into
|
|
139
|
+
** Globals:
|
|
140
|
+
** NameList lookup table for char to name mapping
|
|
141
|
+
** Operation:
|
|
142
|
+
** This routine converts the specified ascii character to a
|
|
143
|
+
** character name. This is convenient for representing
|
|
144
|
+
** characters which might have special meaning to operating
|
|
145
|
+
** system shells or other programs (e.g. "*?&><" etc.).
|
|
146
|
+
** Return: none
|
|
147
|
+
** Exceptions: none
|
|
148
|
+
** History: Sat Aug 26 12:51:02 1989, DSJ, Created.
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
{
|
|
152
|
+
int i;
|
|
153
|
+
|
|
154
|
+
/* look for character in table and return a copy of its name if found */
|
|
155
|
+
for ( i = 0; NameList[i] != NULL; i++ )
|
|
156
|
+
if ( Char == NameList[i][0] )
|
|
157
|
+
{
|
|
158
|
+
strcpy ( CharName, &NameList[i][1] );
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* if the character is not in the table, then use it as the name */
|
|
163
|
+
CharName[0] = Char;
|
|
164
|
+
CharName[1] = 0;
|
|
165
|
+
|
|
166
|
+
} /* CharToName */
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: name2char.h
|
|
3
|
+
** Purpose: Routines to convert between classes and class names.
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Fri Feb 23 08:10:40 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 __NAME2CHAR__
|
|
19
|
+
#define __NAME2CHAR__
|
|
20
|
+
|
|
21
|
+
/**----------------------------------------------------------------------------
|
|
22
|
+
Include Files and Type Defines
|
|
23
|
+
----------------------------------------------------------------------------**/
|
|
24
|
+
#include "matchdefs.h"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/**----------------------------------------------------------------------------
|
|
28
|
+
Public Function Prototypes
|
|
29
|
+
----------------------------------------------------------------------------**/
|
|
30
|
+
CLASS_ID NameToChar (
|
|
31
|
+
char CharName[]);
|
|
32
|
+
|
|
33
|
+
void CharToName (
|
|
34
|
+
CLASS_ID Char,
|
|
35
|
+
char CharName[]);
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
#endif
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
** you may not use this file except in compliance with the License.
|
|
4
|
+
** You may obtain a copy of the License at
|
|
5
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
** See the License for the specific language governing permissions and
|
|
10
|
+
** limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
#include "training.h"
|
|
14
|
+
#include "debug.h"
|
|
15
|
+
#include "memry.h"
|
|
16
|
+
#include "scrollview.h"
|
|
17
|
+
|
|
18
|
+
make_int_var (LearningDebugLevel, 0, MakeLearningDebugLevel,
|
|
19
|
+
18, 5, SetLearningDebugLevel,
|
|
20
|
+
"Learning Debug Level: ");
|
|
21
|
+
|
|
22
|
+
make_int_var (NormMethod, character, MakeNormMethod,
|
|
23
|
+
15, 10, SetNormMethod, "Normalization Method ...")
|
|
24
|
+
|
|
25
|
+
//char *demodir; /*demo home directory */
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
void cprintf( //Trace printf
|
|
29
|
+
const char *format,... //special message
|
|
30
|
+
)
|
|
31
|
+
{
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
char *c_alloc_string( //allocate string
|
|
35
|
+
inT32 count //no of chars required
|
|
36
|
+
)
|
|
37
|
+
{
|
|
38
|
+
return alloc_string(count);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void c_free_string( //free a string
|
|
42
|
+
char *string //string to free
|
|
43
|
+
)
|
|
44
|
+
{
|
|
45
|
+
free_string(string);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
void *c_alloc_mem_p( //allocate permanent space
|
|
49
|
+
inT32 count //block size to allocate
|
|
50
|
+
)
|
|
51
|
+
{
|
|
52
|
+
return alloc_mem_p(count);
|
|
53
|
+
}
|
|
54
|
+
void *c_alloc_mem( //get some memory
|
|
55
|
+
inT32 count //no of bytes to get
|
|
56
|
+
)
|
|
57
|
+
{
|
|
58
|
+
return alloc_mem(count);
|
|
59
|
+
}
|
|
60
|
+
void c_free_mem( //free mem from alloc_mem
|
|
61
|
+
void *oldchunk //chunk to free
|
|
62
|
+
)
|
|
63
|
+
{
|
|
64
|
+
free_mem(oldchunk);
|
|
65
|
+
}
|
|
66
|
+
void c_check_mem( //check consistency
|
|
67
|
+
const char *string, //context message
|
|
68
|
+
inT8 level //level of check
|
|
69
|
+
)
|
|
70
|
+
{
|
|
71
|
+
check_mem(string,level);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void* c_alloc_struct( //allocate memory
|
|
75
|
+
inT32 count, //no of chars required
|
|
76
|
+
const char* name //class name
|
|
77
|
+
)
|
|
78
|
+
{
|
|
79
|
+
return alloc_struct(count,name);
|
|
80
|
+
}
|
|
81
|
+
void c_free_struct( //free a structure
|
|
82
|
+
void* deadstruct, //structure to free
|
|
83
|
+
inT32 count, //no of bytes
|
|
84
|
+
const char* name //class name
|
|
85
|
+
)
|
|
86
|
+
{
|
|
87
|
+
free_struct(deadstruct,count,name);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
void c_make_current( /*move pen*/
|
|
91
|
+
void* win
|
|
92
|
+
)
|
|
93
|
+
{
|
|
94
|
+
ScrollView* window = (ScrollView*) win;
|
|
95
|
+
window->Update();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void reverse32(
|
|
99
|
+
void* ptr
|
|
100
|
+
)
|
|
101
|
+
{
|
|
102
|
+
char tmp;
|
|
103
|
+
char* cptr=(char*)ptr;
|
|
104
|
+
|
|
105
|
+
tmp=*cptr;
|
|
106
|
+
*cptr=*(cptr+3);
|
|
107
|
+
*(cptr+3)=tmp;
|
|
108
|
+
tmp=*(cptr+1);
|
|
109
|
+
*(cptr+1)=*(cptr+2);
|
|
110
|
+
*(cptr+2)=tmp;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void reverse16(
|
|
114
|
+
void* ptr
|
|
115
|
+
)
|
|
116
|
+
{
|
|
117
|
+
char tmp;
|
|
118
|
+
char* cptr=(char*)ptr;
|
|
119
|
+
|
|
120
|
+
tmp=*cptr;
|
|
121
|
+
*cptr=*(cptr+1);
|
|
122
|
+
*(cptr+1)=tmp;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
ScrollView* c_create_window( /*create a window*/
|
|
130
|
+
const char *name, /*name/title of window*/
|
|
131
|
+
inT16 xpos, /*coords of window*/
|
|
132
|
+
inT16 ypos, /*coords of window*/
|
|
133
|
+
inT16 xsize, /*size of window*/
|
|
134
|
+
inT16 ysize, /*size of window*/
|
|
135
|
+
double xmin, /*scrolling limits*/
|
|
136
|
+
double xmax, /*to stop users*/
|
|
137
|
+
double ymin, /*getting lost in*/
|
|
138
|
+
double ymax /*empty space*/
|
|
139
|
+
)
|
|
140
|
+
{
|
|
141
|
+
return new ScrollView(name, xpos, ypos, xsize, ysize, xmin + xmax, ymin + ymax, true);
|
|
142
|
+
}
|
|
143
|
+
void c_line_color_index( /*set color*/
|
|
144
|
+
void* win,
|
|
145
|
+
C_COL index
|
|
146
|
+
)
|
|
147
|
+
{
|
|
148
|
+
// The colors are the same as the SV ones except that SV has COLOR:NONE --> offset of 1
|
|
149
|
+
ScrollView* window = (ScrollView*) win;
|
|
150
|
+
window->Pen((ScrollView::Color) (index + 1));
|
|
151
|
+
}
|
|
152
|
+
void c_move( /*move pen*/
|
|
153
|
+
void* win,
|
|
154
|
+
double x,
|
|
155
|
+
double y
|
|
156
|
+
)
|
|
157
|
+
{
|
|
158
|
+
ScrollView* window = (ScrollView*) win;
|
|
159
|
+
window->SetCursor((int) x, (int) y);
|
|
160
|
+
}
|
|
161
|
+
void c_draw( /*move pen*/
|
|
162
|
+
void* win,
|
|
163
|
+
double x,
|
|
164
|
+
double y
|
|
165
|
+
)
|
|
166
|
+
{
|
|
167
|
+
ScrollView* window = (ScrollView*) win;
|
|
168
|
+
window->DrawTo((int) x, (int) y);
|
|
169
|
+
}
|
|
170
|
+
void c_clear_window( /*move pen*/
|
|
171
|
+
void* win
|
|
172
|
+
)
|
|
173
|
+
{
|
|
174
|
+
ScrollView* window = (ScrollView*) win;
|
|
175
|
+
window->Clear();
|
|
176
|
+
}
|
|
177
|
+
char window_wait( /*move pen*/
|
|
178
|
+
void* win
|
|
179
|
+
)
|
|
180
|
+
{
|
|
181
|
+
ScrollView* window = (ScrollView*) win;
|
|
182
|
+
SVEvent* ev;
|
|
183
|
+
|
|
184
|
+
// Wait till an input event (all others are thrown away)
|
|
185
|
+
ev = window->AwaitEvent(SVET_ANY);
|
|
186
|
+
char ret = '\0';
|
|
187
|
+
if (ev->type == SVET_INPUT) { ret = ev->parameter[0]; }
|
|
188
|
+
delete ev;
|
|
189
|
+
return ret;
|
|
190
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
** you may not use this file except in compliance with the License.
|
|
4
|
+
** You may obtain a copy of the License at
|
|
5
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
** See the License for the specific language governing permissions and
|
|
10
|
+
** limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
#ifndef TRAINING_H
|
|
14
|
+
#define TRAINING_H
|
|
15
|
+
|
|
16
|
+
#include "host.h"
|
|
17
|
+
#include "callcpp.h"
|
|
18
|
+
|
|
19
|
+
typedef enum
|
|
20
|
+
{
|
|
21
|
+
baseline, character
|
|
22
|
+
}
|
|
23
|
+
NORM_METHOD;
|
|
24
|
+
|
|
25
|
+
typedef struct
|
|
26
|
+
{
|
|
27
|
+
FLOAT32 x,y;
|
|
28
|
+
} FPOINT;
|
|
29
|
+
typedef FPOINT FVECTOR;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
#define INTEL 0x4949
|
|
33
|
+
#define MOTO 0x4d4d
|
|
34
|
+
|
|
35
|
+
#define PICO_FEATURE_LENGTH (0.05)
|
|
36
|
+
#define GetPicoFeatureLength() (PICO_FEATURE_LENGTH)
|
|
37
|
+
|
|
38
|
+
extern int LearningDebugLevel;
|
|
39
|
+
extern int NormMethod;
|
|
40
|
+
|
|
41
|
+
void cprintf( //Trace printf
|
|
42
|
+
const char *format,... //special message
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
char *c_alloc_string( //allocate string
|
|
46
|
+
inT32 count //no of chars required
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
void c_free_string( //free a string
|
|
50
|
+
char *string //string to free
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
void *c_alloc_mem_p( //allocate permanent space
|
|
54
|
+
inT32 count //block size to allocate
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
void *c_alloc_mem( //get some memory
|
|
58
|
+
inT32 count //no of bytes to get
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
void c_free_mem( //free mem from alloc_mem
|
|
62
|
+
void *oldchunk //chunk to free
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
void c_check_mem( //check consistency
|
|
66
|
+
char *string, //context message
|
|
67
|
+
inT8 level //level of check
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
void* c_alloc_struct( //allocate memory
|
|
71
|
+
inT32 count, //no of chars required
|
|
72
|
+
const char* name //class name
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
void c_free_struct( //free a structure
|
|
76
|
+
void* deadstruct, //structure to free
|
|
77
|
+
inT32 count, //no of bytes
|
|
78
|
+
const char* name //class name
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
void c_make_current( /*move pen*/
|
|
82
|
+
void* win
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
void reverse32(
|
|
86
|
+
void* ptr
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
void reverse16(
|
|
90
|
+
void* ptr
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
ScrollView* c_create_window( /*create a window*/
|
|
94
|
+
const char *name, /*name/title of window*/
|
|
95
|
+
inT16 xpos, /*coords of window*/
|
|
96
|
+
inT16 ypos, /*coords of window*/
|
|
97
|
+
inT16 xsize, /*size of window*/
|
|
98
|
+
inT16 ysize, /*size of window*/
|
|
99
|
+
double xmin, /*scrolling limits*/
|
|
100
|
+
double xmax, /*to stop users*/
|
|
101
|
+
double ymin, /*getting lost in*/
|
|
102
|
+
double ymax /*empty space*/
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
void c_line_color_index( /*set color*/
|
|
106
|
+
void* win,
|
|
107
|
+
C_COL index
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
void c_move( /*move pen*/
|
|
111
|
+
void* win,
|
|
112
|
+
double x,
|
|
113
|
+
double y
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
void c_draw( /*move pen*/
|
|
117
|
+
void* win,
|
|
118
|
+
double x,
|
|
119
|
+
double y
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
void c_clear_window( /*move pen*/
|
|
123
|
+
void* win
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
char window_wait( /*move pen*/
|
|
127
|
+
void* win
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
#endif
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
///////////////////////////////////////////////////////////////////////
|
|
2
|
+
// File: unicharset_extractor.cpp
|
|
3
|
+
// Description: Unicode character/ligature set extractor.
|
|
4
|
+
// Author: Thomas Kielbus
|
|
5
|
+
// Created: Wed Jun 28 17:05:01 PDT 2006
|
|
6
|
+
//
|
|
7
|
+
// (C) Copyright 2006, Google Inc.
|
|
8
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
// you may not use this file except in compliance with the License.
|
|
10
|
+
// You may obtain a copy of the License at
|
|
11
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
// See the License for the specific language governing permissions and
|
|
16
|
+
// limitations under the License.
|
|
17
|
+
//
|
|
18
|
+
///////////////////////////////////////////////////////////////////////
|
|
19
|
+
|
|
20
|
+
// Given a list of box files on the command line, this program generates a file
|
|
21
|
+
// containing a unicharset, a list of all the characters used by Tesseract
|
|
22
|
+
//
|
|
23
|
+
// The file contains the size of the set on the first line, and then one
|
|
24
|
+
// unichar per line.
|
|
25
|
+
|
|
26
|
+
#include <stdio.h>
|
|
27
|
+
/*
|
|
28
|
+
** Include automatically generated configuration file if running autoconf
|
|
29
|
+
*/
|
|
30
|
+
#ifdef HAVE_CONFIG_H
|
|
31
|
+
#include "config_auto.h"
|
|
32
|
+
#endif
|
|
33
|
+
#if defined(HAVE_WCHAR_T) || defined(__MSW32__) || defined(GOOGLE3)
|
|
34
|
+
#include <wchar.h>
|
|
35
|
+
#include <wctype.h>
|
|
36
|
+
#define USING_WCTYPE
|
|
37
|
+
#endif
|
|
38
|
+
#include <locale.h>
|
|
39
|
+
|
|
40
|
+
#include "unichar.h"
|
|
41
|
+
#include "unicharset.h"
|
|
42
|
+
#include "strngs.h"
|
|
43
|
+
#include "boxread.h"
|
|
44
|
+
#include "tessopt.h"
|
|
45
|
+
|
|
46
|
+
static const char* const kUnicharsetFileName = "unicharset";
|
|
47
|
+
|
|
48
|
+
// Set character properties using wctype if we have it.
|
|
49
|
+
// Contributed by piggy@gmail.com.
|
|
50
|
+
// Modified by Ray to use UNICHAR for unicode conversion
|
|
51
|
+
// and to check for wctype using autoconf/presence of windows.
|
|
52
|
+
void set_properties(UNICHARSET *unicharset, const char* const c_string) {
|
|
53
|
+
#ifdef USING_WCTYPE
|
|
54
|
+
UNICHAR_ID id;
|
|
55
|
+
int wc;
|
|
56
|
+
|
|
57
|
+
// Convert the string to a unichar id.
|
|
58
|
+
id = unicharset->unichar_to_id(c_string);
|
|
59
|
+
|
|
60
|
+
int step = UNICHAR::utf8_step(c_string);
|
|
61
|
+
if (step == 0)
|
|
62
|
+
return; // Invalid utf-8.
|
|
63
|
+
|
|
64
|
+
// Get the next Unicode cond point in the string.
|
|
65
|
+
UNICHAR ch(c_string, step);
|
|
66
|
+
wc = ch.first_uni();
|
|
67
|
+
|
|
68
|
+
/* Copy the properties. */
|
|
69
|
+
if (iswalpha(wc)) {
|
|
70
|
+
unicharset->set_isalpha(id, 1);
|
|
71
|
+
if (iswlower(wc))
|
|
72
|
+
unicharset->set_islower(id, 1);
|
|
73
|
+
if (iswupper(wc))
|
|
74
|
+
unicharset->set_isupper(id, 1);
|
|
75
|
+
}
|
|
76
|
+
if (iswdigit(wc))
|
|
77
|
+
unicharset->set_isdigit(id, 1);
|
|
78
|
+
#endif
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
int main(int argc, char** argv) {
|
|
82
|
+
int option;
|
|
83
|
+
const char* output_directory = ".";
|
|
84
|
+
STRING unicharset_file_name;
|
|
85
|
+
UNICHARSET unicharset;
|
|
86
|
+
|
|
87
|
+
setlocale(LC_ALL, "");
|
|
88
|
+
// Space character needed to represent NIL classification
|
|
89
|
+
unicharset.unichar_insert(" ");
|
|
90
|
+
|
|
91
|
+
// Print usage
|
|
92
|
+
if (argc <= 1) {
|
|
93
|
+
printf("Usage: %s [-D DIRECTORY] FILE...\n", argv[0]);
|
|
94
|
+
exit(1);
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Parse arguments
|
|
99
|
+
while ((option = tessopt(argc, argv, "D" )) != EOF) {
|
|
100
|
+
switch (option) {
|
|
101
|
+
case 'D':
|
|
102
|
+
output_directory = tessoptarg;
|
|
103
|
+
++tessoptind;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Save file name
|
|
109
|
+
unicharset_file_name = output_directory;
|
|
110
|
+
unicharset_file_name += "/";
|
|
111
|
+
unicharset_file_name += kUnicharsetFileName;
|
|
112
|
+
|
|
113
|
+
// Load box files
|
|
114
|
+
for (; tessoptind < argc; ++tessoptind) {
|
|
115
|
+
printf("Extracting unicharset from %s\n", argv[tessoptind]);
|
|
116
|
+
|
|
117
|
+
FILE* box_file = fopen(argv[tessoptind], "r");
|
|
118
|
+
if (box_file == NULL) {
|
|
119
|
+
printf("Cannot open box file %s\n", argv[tessoptind]);
|
|
120
|
+
return -1;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
int x_min, y_min, x_max, y_max;
|
|
124
|
+
char c_string[kBoxReadBufSize];
|
|
125
|
+
while (read_next_box(box_file, c_string, &x_min, &y_min, &x_max, &y_max)) {
|
|
126
|
+
unicharset.unichar_insert(c_string);
|
|
127
|
+
set_properties(&unicharset, c_string);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Write unicharset file
|
|
132
|
+
if (unicharset.save_to_file(unicharset_file_name.string())) {
|
|
133
|
+
printf("Wrote unicharset file %s.\n", unicharset_file_name.string());
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
printf("Cannot save unicharset file %s.\n", unicharset_file_name.string());
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
return 0;
|
|
140
|
+
}
|