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,258 @@
|
|
|
1
|
+
/* -*-C-*-
|
|
2
|
+
********************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* File: protos.h (Formerly protos.h)
|
|
5
|
+
* Description:
|
|
6
|
+
* Author: Mark Seaman, SW Productivity
|
|
7
|
+
* Created: Fri Oct 16 14:37:00 1987
|
|
8
|
+
* Modified: Fri Jul 12 10:06:55 1991 (Dan Johnson) danj@hpgrlj
|
|
9
|
+
* Language: C
|
|
10
|
+
* Package: N/A
|
|
11
|
+
* Status: Reusable Software Component
|
|
12
|
+
*
|
|
13
|
+
* (c) Copyright 1987, Hewlett-Packard Company.
|
|
14
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
** you may not use this file except in compliance with the License.
|
|
16
|
+
** You may obtain a copy of the License at
|
|
17
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
** See the License for the specific language governing permissions and
|
|
22
|
+
** limitations under the License.
|
|
23
|
+
*
|
|
24
|
+
*********************************************************************************/
|
|
25
|
+
#ifndef PROTOS_H
|
|
26
|
+
#define PROTOS_H
|
|
27
|
+
|
|
28
|
+
/*----------------------------------------------------------------------
|
|
29
|
+
I n c l u d e s
|
|
30
|
+
----------------------------------------------------------------------*/
|
|
31
|
+
#include "bitvec.h"
|
|
32
|
+
#include "cutil.h"
|
|
33
|
+
#include "unichar.h"
|
|
34
|
+
|
|
35
|
+
/*----------------------------------------------------------------------
|
|
36
|
+
T y p e s
|
|
37
|
+
----------------------------------------------------------------------*/
|
|
38
|
+
typedef BIT_VECTOR *CONFIGS;
|
|
39
|
+
|
|
40
|
+
typedef struct
|
|
41
|
+
{
|
|
42
|
+
FLOAT32 A;
|
|
43
|
+
FLOAT32 B;
|
|
44
|
+
FLOAT32 C;
|
|
45
|
+
FLOAT32 X;
|
|
46
|
+
FLOAT32 Y;
|
|
47
|
+
FLOAT32 Angle;
|
|
48
|
+
FLOAT32 Length;
|
|
49
|
+
} PROTO_STRUCT;
|
|
50
|
+
typedef PROTO_STRUCT *PROTO;
|
|
51
|
+
|
|
52
|
+
typedef struct
|
|
53
|
+
{
|
|
54
|
+
inT16 NumProtos;
|
|
55
|
+
inT16 MaxNumProtos;
|
|
56
|
+
PROTO Prototypes;
|
|
57
|
+
inT16 NumConfigs;
|
|
58
|
+
inT16 MaxNumConfigs;
|
|
59
|
+
CONFIGS Configurations;
|
|
60
|
+
} CLASS_STRUCT;
|
|
61
|
+
typedef CLASS_STRUCT *CLASS_TYPE;
|
|
62
|
+
typedef CLASS_STRUCT *CLASSES;
|
|
63
|
+
|
|
64
|
+
/*----------------------------------------------------------------------
|
|
65
|
+
C o n s t a n t s
|
|
66
|
+
----------------------------------------------------------------------*/
|
|
67
|
+
#define NUMBER_OF_CLASSES MAX_NUM_CLASSES
|
|
68
|
+
#define Y_OFFSET -40.0
|
|
69
|
+
#define FEATURE_SCALE 100.0
|
|
70
|
+
|
|
71
|
+
/*----------------------------------------------------------------------
|
|
72
|
+
V a r i a b l e s
|
|
73
|
+
----------------------------------------------------------------------*/
|
|
74
|
+
extern CLASS_STRUCT TrainingData[];
|
|
75
|
+
|
|
76
|
+
/*----------------------------------------------------------------------
|
|
77
|
+
M a c r o s
|
|
78
|
+
----------------------------------------------------------------------*/
|
|
79
|
+
/**********************************************************************
|
|
80
|
+
* AddProtoToConfig
|
|
81
|
+
*
|
|
82
|
+
* Set a single proto bit in the specified configuration.
|
|
83
|
+
**********************************************************************/
|
|
84
|
+
|
|
85
|
+
#define AddProtoToConfig(Pid,Config) \
|
|
86
|
+
(SET_BIT (Config, Pid))
|
|
87
|
+
|
|
88
|
+
/**********************************************************************
|
|
89
|
+
* RemoveProtoFromConfig
|
|
90
|
+
*
|
|
91
|
+
* Clear a single proto bit in the specified configuration.
|
|
92
|
+
**********************************************************************/
|
|
93
|
+
|
|
94
|
+
#define RemoveProtoFromConfig(Pid,Config) \
|
|
95
|
+
(reset_bit (Config, Pid))
|
|
96
|
+
|
|
97
|
+
/**********************************************************************
|
|
98
|
+
* ClassOfChar
|
|
99
|
+
*
|
|
100
|
+
* Return the class of a particular ASCII character value.
|
|
101
|
+
**********************************************************************/
|
|
102
|
+
|
|
103
|
+
#define ClassOfChar(Char) \
|
|
104
|
+
((TrainingData [Char].NumProtos) ? \
|
|
105
|
+
(& TrainingData [Char]) : \
|
|
106
|
+
NO_CLASS)
|
|
107
|
+
|
|
108
|
+
/**********************************************************************
|
|
109
|
+
* ProtoIn
|
|
110
|
+
*
|
|
111
|
+
* Choose the selected prototype in this class record. Return the
|
|
112
|
+
* pointer to it (type PROTO).
|
|
113
|
+
**********************************************************************/
|
|
114
|
+
|
|
115
|
+
#define ProtoIn(Class,Pid) \
|
|
116
|
+
(& (Class)->Prototypes [Pid])
|
|
117
|
+
|
|
118
|
+
/**********************************************************************
|
|
119
|
+
* PrintProto
|
|
120
|
+
*
|
|
121
|
+
* Print out the contents of a prototype. The 'Proto' argument is of
|
|
122
|
+
* type 'PROTO'.
|
|
123
|
+
**********************************************************************/
|
|
124
|
+
|
|
125
|
+
#define PrintProto(Proto) \
|
|
126
|
+
(cprintf ("X=%4.2f, Y=%4.2f, Angle=%4.2f", \
|
|
127
|
+
Proto->X, \
|
|
128
|
+
Proto->Y, \
|
|
129
|
+
Proto->Length, \
|
|
130
|
+
Proto->Angle)) \
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
/**********************************************************************
|
|
134
|
+
* PrintProtoLine
|
|
135
|
+
*
|
|
136
|
+
* Print out the contents of a prototype. The 'Proto' argument is of
|
|
137
|
+
* type 'PROTO'.
|
|
138
|
+
**********************************************************************/
|
|
139
|
+
|
|
140
|
+
#define PrintProtoLine(Proto) \
|
|
141
|
+
(cprintf ("A=%4.2f, B=%4.2f, C=%4.2f", \
|
|
142
|
+
Proto->A, \
|
|
143
|
+
Proto->B, \
|
|
144
|
+
Proto->C)) \
|
|
145
|
+
|
|
146
|
+
/*----------------------------------------------------------------------
|
|
147
|
+
F u n c t i o n s
|
|
148
|
+
----------------------------------------------------------------------*/
|
|
149
|
+
int AddConfigToClass(CLASS_TYPE Class);
|
|
150
|
+
|
|
151
|
+
int AddProtoToClass(CLASS_TYPE Class);
|
|
152
|
+
|
|
153
|
+
FLOAT32 ClassConfigLength(CLASS_TYPE Class, BIT_VECTOR Config);
|
|
154
|
+
|
|
155
|
+
FLOAT32 ClassProtoLength(CLASS_TYPE Class);
|
|
156
|
+
|
|
157
|
+
void CopyProto(PROTO Src, PROTO Dest);
|
|
158
|
+
|
|
159
|
+
void FillABC(PROTO Proto);
|
|
160
|
+
|
|
161
|
+
void FreeClass(CLASS_TYPE Class);
|
|
162
|
+
|
|
163
|
+
void FreeClassFields(CLASS_TYPE Class);
|
|
164
|
+
|
|
165
|
+
void InitPrototypes();
|
|
166
|
+
|
|
167
|
+
CLASS_TYPE NewClass(int NumProtos, int NumConfigs);
|
|
168
|
+
|
|
169
|
+
void PrintProtos(CLASS_TYPE Class);
|
|
170
|
+
|
|
171
|
+
void ReadClassFile();
|
|
172
|
+
|
|
173
|
+
void ReadClassFromFile(FILE *File, UNICHAR_ID unichar_id);
|
|
174
|
+
|
|
175
|
+
void ReadConfigs(register FILE *File, CLASS_TYPE Class);
|
|
176
|
+
|
|
177
|
+
void ReadProtos(register FILE *File, CLASS_TYPE Class);
|
|
178
|
+
|
|
179
|
+
int SplitProto(CLASS_TYPE Class, int OldPid);
|
|
180
|
+
|
|
181
|
+
void WriteOldConfigFile(FILE *File, CLASS_TYPE Class);
|
|
182
|
+
|
|
183
|
+
void WriteOldProtoFile(FILE *File, CLASS_TYPE Class);
|
|
184
|
+
|
|
185
|
+
/*
|
|
186
|
+
#if defined(__STDC__) || defined(__cplusplus)
|
|
187
|
+
# define _ARGS(s) s
|
|
188
|
+
#else
|
|
189
|
+
# define _ARGS(s) ()
|
|
190
|
+
#endif*/
|
|
191
|
+
|
|
192
|
+
/* protos.c *
|
|
193
|
+
int AddConfigToClass
|
|
194
|
+
_ARGS((CLASS_TYPE Class));
|
|
195
|
+
|
|
196
|
+
int AddProtoToClass
|
|
197
|
+
_ARGS((CLASS_TYPE Class));
|
|
198
|
+
|
|
199
|
+
FLOAT32 ClassConfigLength
|
|
200
|
+
_ARGS((CLASS_TYPE Class,
|
|
201
|
+
BIT_VECTOR Config));
|
|
202
|
+
|
|
203
|
+
FLOAT32 ClassProtoLength
|
|
204
|
+
_ARGS((CLASS_TYPE Class));
|
|
205
|
+
|
|
206
|
+
void CopyProto
|
|
207
|
+
_ARGS((PROTO Src,
|
|
208
|
+
PROTO Dest));
|
|
209
|
+
|
|
210
|
+
void FillABC
|
|
211
|
+
_ARGS((PROTO Proto));
|
|
212
|
+
|
|
213
|
+
void FreeClass
|
|
214
|
+
_ARGS((CLASS_TYPE Class));
|
|
215
|
+
|
|
216
|
+
void FreeClassFields
|
|
217
|
+
_ARGS((CLASS_TYPE Class));
|
|
218
|
+
|
|
219
|
+
void InitPrototypes
|
|
220
|
+
_ARGS((void));
|
|
221
|
+
|
|
222
|
+
CLASS_TYPE NewClass
|
|
223
|
+
_ARGS((int NumProtos,
|
|
224
|
+
int NumConfigs));
|
|
225
|
+
|
|
226
|
+
void PrintProtos
|
|
227
|
+
_ARGS((CLASS_TYPE Class));
|
|
228
|
+
|
|
229
|
+
void ReadClassFile
|
|
230
|
+
_ARGS((void));
|
|
231
|
+
|
|
232
|
+
void ReadClassFromFile
|
|
233
|
+
_ARGS((FILE *File,
|
|
234
|
+
int ClassChar));
|
|
235
|
+
|
|
236
|
+
void ReadConfigs
|
|
237
|
+
_ARGS((FILE *File,
|
|
238
|
+
CLASS_TYPE Class));
|
|
239
|
+
|
|
240
|
+
void ReadProtos
|
|
241
|
+
_ARGS((FILE *File,
|
|
242
|
+
CLASS_TYPE Class));
|
|
243
|
+
|
|
244
|
+
int SplitProto
|
|
245
|
+
_ARGS((CLASS_TYPE Class,
|
|
246
|
+
int OldPid));
|
|
247
|
+
|
|
248
|
+
void WriteOldConfigFile
|
|
249
|
+
_ARGS((FILE *File,
|
|
250
|
+
CLASS_TYPE Class));
|
|
251
|
+
|
|
252
|
+
void WriteOldProtoFile
|
|
253
|
+
_ARGS((FILE *File,
|
|
254
|
+
CLASS_TYPE Class));
|
|
255
|
+
|
|
256
|
+
#undef _ARGS
|
|
257
|
+
*/
|
|
258
|
+
#endif
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: sigmenu.c
|
|
3
|
+
** Purpose: General purpose, menu-oriented signal handling routines
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Mon Oct 2 07:25:50 1989, 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 "sigmenu.h"
|
|
22
|
+
#include "oldlist.h"
|
|
23
|
+
#include "emalloc.h"
|
|
24
|
+
#include "secname.h"
|
|
25
|
+
|
|
26
|
+
#include <signal.h>
|
|
27
|
+
#include <stdio.h>
|
|
28
|
+
#include <string.h>
|
|
29
|
+
|
|
30
|
+
#define MAX_COMMAND_LENGTH 128
|
|
31
|
+
|
|
32
|
+
typedef struct
|
|
33
|
+
{
|
|
34
|
+
int ItemNum;
|
|
35
|
+
char *ItemLabel;
|
|
36
|
+
int_void ItemFunc;
|
|
37
|
+
} SIG_MENU_ITEM;
|
|
38
|
+
|
|
39
|
+
/**----------------------------------------------------------------------------
|
|
40
|
+
Global Data Definitions and Declarations
|
|
41
|
+
----------------------------------------------------------------------------**/
|
|
42
|
+
static LIST SignalMenus[NSIG]; /* must be initialized to NIL */
|
|
43
|
+
|
|
44
|
+
/**----------------------------------------------------------------------------
|
|
45
|
+
Private Function Prototypes
|
|
46
|
+
----------------------------------------------------------------------------**/
|
|
47
|
+
void MainSignalHandler(int Signal);
|
|
48
|
+
|
|
49
|
+
SIG_MENU_ITEM *NewSignalMenuItem (int ItemNum,
|
|
50
|
+
const char ItemLabel[], int_void ItemFunc);
|
|
51
|
+
|
|
52
|
+
int ItemCompare(void *arg1, //SIG_MENU_ITEM *Item1,
|
|
53
|
+
void *arg2); //SIG_MENU_ITEM *Item2);
|
|
54
|
+
|
|
55
|
+
/**----------------------------------------------------------------------------
|
|
56
|
+
Public Code
|
|
57
|
+
----------------------------------------------------------------------------**/
|
|
58
|
+
/*---------------------------------------------------------------------------*/
|
|
59
|
+
void
|
|
60
|
+
AddSignalMenuItem (int Signal,
|
|
61
|
+
int ItemNum, const char ItemLabel[], int_void ItemFunc) {
|
|
62
|
+
/*
|
|
63
|
+
** Parameters:
|
|
64
|
+
** Signal signal to be trapped for this menu
|
|
65
|
+
** ItemNum menu number for this item
|
|
66
|
+
** ItemLabel menu label for this item
|
|
67
|
+
** ItemFunc function to be called when item is selected
|
|
68
|
+
** Globals:
|
|
69
|
+
** SignalMenus list of menu items for each possible signal
|
|
70
|
+
** Operation:
|
|
71
|
+
** Add a new menu item to the list of menu items for Signal.
|
|
72
|
+
** Whenever Signal is encountered, the user will be given
|
|
73
|
+
** a list of options to choose from. This list is the list
|
|
74
|
+
** of all of the menu items that have been specified for that
|
|
75
|
+
** Signal.
|
|
76
|
+
** Return: none
|
|
77
|
+
** Exceptions: none
|
|
78
|
+
** History: Mon Oct 2 07:42:19 1989, DSJ, Created.
|
|
79
|
+
*/
|
|
80
|
+
#if 0
|
|
81
|
+
#ifndef SECURE_NAMES
|
|
82
|
+
SIG_MENU_ITEM *NewItem;
|
|
83
|
+
|
|
84
|
+
/* check for a valid Signal */
|
|
85
|
+
if (Signal >= NSIG || Signal <= 0) {
|
|
86
|
+
cprintf ("Illegal signal (%d) specified for menu item!\n", Signal);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* if this is the first item for this signal, indicate that the
|
|
91
|
+
appropriate signal handler has been enabled */
|
|
92
|
+
if (SignalMenus[Signal] == NIL)
|
|
93
|
+
cprintf ("Signal handler enabled for signal %d.\n", Signal);
|
|
94
|
+
|
|
95
|
+
/* add the new menu item to the appropriate list of menu items */
|
|
96
|
+
NewItem = NewSignalMenuItem (ItemNum, ItemLabel, ItemFunc);
|
|
97
|
+
SignalMenus[Signal] = s_adjoin (SignalMenus[Signal], NewItem, ItemCompare);
|
|
98
|
+
|
|
99
|
+
/* set up the trap for the appropriate signal */
|
|
100
|
+
signal(Signal, MainSignalHandler);
|
|
101
|
+
#endif
|
|
102
|
+
#endif
|
|
103
|
+
} /* AddSignalMenuItem */
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
/**----------------------------------------------------------------------------
|
|
107
|
+
Private Code
|
|
108
|
+
----------------------------------------------------------------------------**/
|
|
109
|
+
/*---------------------------------------------------------------------------*/
|
|
110
|
+
void MainSignalHandler(int Signal) {
|
|
111
|
+
/*
|
|
112
|
+
** Parameters:
|
|
113
|
+
** Signal signal that caused this function to be called
|
|
114
|
+
** Globals:
|
|
115
|
+
** SignalMenus list of menu items for each possible signal
|
|
116
|
+
** Operation: Provide the user with a menu of actions for the trapped
|
|
117
|
+
** signal. Execute the appropriate function. If the function
|
|
118
|
+
** returns SIG_RESUME, then terminate the signal handler and
|
|
119
|
+
** resume normal processing. If the function does not return
|
|
120
|
+
** SIG_RESUME, remain in the main signal handler menu.
|
|
121
|
+
** Return: none
|
|
122
|
+
** Exceptions: none
|
|
123
|
+
** History: Mon Oct 2 08:18:52 1989, DSJ, Created.
|
|
124
|
+
*/
|
|
125
|
+
#ifndef SECURE_NAMES
|
|
126
|
+
int Command;
|
|
127
|
+
char CommandLine[MAX_COMMAND_LENGTH];
|
|
128
|
+
char *Params;
|
|
129
|
+
LIST Items;
|
|
130
|
+
SIG_MENU_ITEM *MenuItem;
|
|
131
|
+
|
|
132
|
+
while (TRUE) {
|
|
133
|
+
Command = -1;
|
|
134
|
+
cprintf ("\nMAIN SIGNAL HANDLER FOR SIGNAL %d\n", Signal);
|
|
135
|
+
cprintf ("0. Resume normal operation\n");
|
|
136
|
+
|
|
137
|
+
Items = SignalMenus[Signal];
|
|
138
|
+
iterate(Items) {
|
|
139
|
+
MenuItem = (SIG_MENU_ITEM *) first_node (Items);
|
|
140
|
+
cprintf ("%d. %s\n", MenuItem->ItemNum, MenuItem->ItemLabel);
|
|
141
|
+
}
|
|
142
|
+
cprintf ("\nEnter Selection: ");
|
|
143
|
+
|
|
144
|
+
while (fgets (CommandLine, MAX_COMMAND_LENGTH, stdin) == NULL
|
|
145
|
+
|| strlen (CommandLine) <= 0);
|
|
146
|
+
|
|
147
|
+
Command = strtol (CommandLine, &Params, 10);
|
|
148
|
+
if (CommandLine == Params) {
|
|
149
|
+
cprintf ("\nIllegal command! - Try again.\n");
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (Command == 0)
|
|
154
|
+
signal(Signal, MainSignalHandler);
|
|
155
|
+
|
|
156
|
+
Items = SignalMenus[Signal];
|
|
157
|
+
iterate(Items) {
|
|
158
|
+
MenuItem = (SIG_MENU_ITEM *) first_node (Items);
|
|
159
|
+
if (Command == MenuItem->ItemNum) {
|
|
160
|
+
if ((*MenuItem->ItemFunc) ( /*Params */ ) == SIG_RESUME)
|
|
161
|
+
signal(Signal, MainSignalHandler);
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (Items == NIL)
|
|
166
|
+
cprintf ("\nIllegal command! - Try again.\n");
|
|
167
|
+
}
|
|
168
|
+
#endif
|
|
169
|
+
} /* MainSignalHandler */
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
/*---------------------------------------------------------------------------*/
|
|
173
|
+
SIG_MENU_ITEM *
|
|
174
|
+
NewSignalMenuItem (int ItemNum, const char ItemLabel[], int_void ItemFunc) {
|
|
175
|
+
/*
|
|
176
|
+
** Parameters:
|
|
177
|
+
** ItemNum menu number for this item
|
|
178
|
+
** ItemLabel menu label for this item
|
|
179
|
+
** ItemFunc function to be called when item is selected
|
|
180
|
+
** Globals: none
|
|
181
|
+
** Operation: Allocate, initialize, and return a new signal menu item.
|
|
182
|
+
** Return: Ptr to new signal menu item data structure.
|
|
183
|
+
** Exceptions: none
|
|
184
|
+
** History: Mon Oct 2 08:04:20 1989, DSJ, Created.
|
|
185
|
+
*/
|
|
186
|
+
SIG_MENU_ITEM *NewItem;
|
|
187
|
+
|
|
188
|
+
NewItem = (SIG_MENU_ITEM *) Emalloc (sizeof (SIG_MENU_ITEM));
|
|
189
|
+
NewItem->ItemNum = ItemNum;
|
|
190
|
+
NewItem->ItemFunc = ItemFunc;
|
|
191
|
+
NewItem->ItemLabel = (char *) Emalloc (strlen (ItemLabel) + 1);
|
|
192
|
+
strcpy (NewItem->ItemLabel, ItemLabel);
|
|
193
|
+
return (NewItem);
|
|
194
|
+
|
|
195
|
+
} /* NewSignalMenuItem */
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
/*---------------------------------------------------------------------------*/
|
|
199
|
+
int ItemCompare(void *arg1, //SIG_MENU_ITEM *Item1,
|
|
200
|
+
void *arg2) { //SIG_MENU_ITEM *Item2)
|
|
201
|
+
/*
|
|
202
|
+
** Parameters:
|
|
203
|
+
** Item1, Item2 two menu items to be compared
|
|
204
|
+
** Globals: none
|
|
205
|
+
** Operation: Return -1 if the ItemNum of Item1 is less than the
|
|
206
|
+
** ItemNum of Item2. Return 0 if they are equal. Return +1
|
|
207
|
+
** if the ItemNum of Item1 is greater than the ItemNum of
|
|
208
|
+
** Item2. This routine is used by the list sorter to sort
|
|
209
|
+
** lists of menu items according to their item number.
|
|
210
|
+
** Return: -1, 0, or 1
|
|
211
|
+
** Exceptions: none
|
|
212
|
+
** History: Mon Oct 2 08:11:59 1989, DSJ, Created.
|
|
213
|
+
*/
|
|
214
|
+
SIG_MENU_ITEM *Item1 = (SIG_MENU_ITEM *) arg1;
|
|
215
|
+
SIG_MENU_ITEM *Item2 = (SIG_MENU_ITEM *) arg2;
|
|
216
|
+
|
|
217
|
+
if (Item1->ItemNum < Item2->ItemNum)
|
|
218
|
+
return (-1);
|
|
219
|
+
else if (Item1->ItemNum == Item2->ItemNum)
|
|
220
|
+
return (0);
|
|
221
|
+
else if (Item1->ItemNum > Item2->ItemNum)
|
|
222
|
+
return (1);
|
|
223
|
+
else
|
|
224
|
+
return 0;
|
|
225
|
+
} /* ItemCompare */
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: sigmenu.h
|
|
3
|
+
** Purpose: Definition of signal handler routines
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: 10/2/89, 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 SIGMENU_H
|
|
19
|
+
#define SIGMENU_H
|
|
20
|
+
|
|
21
|
+
/**----------------------------------------------------------------------------
|
|
22
|
+
Include Files and Type Defines
|
|
23
|
+
----------------------------------------------------------------------------**/
|
|
24
|
+
#include "cutil.h"
|
|
25
|
+
#include <signal.h>
|
|
26
|
+
|
|
27
|
+
/* functions to be placed in the signal menu look like: */
|
|
28
|
+
//typedef int (*SIG_MENU_FUNC)(...);
|
|
29
|
+
/* the value returned from a SIG_MENU_FUNC must be one of the following */
|
|
30
|
+
#define SIG_RESUME 1
|
|
31
|
+
#define SIG_MENU 0
|
|
32
|
+
|
|
33
|
+
/**----------------------------------------------------------------------------
|
|
34
|
+
Public Function Prototypes
|
|
35
|
+
----------------------------------------------------------------------------**/
|
|
36
|
+
void AddSignalMenuItem (int Signal,
|
|
37
|
+
int ItemNum,
|
|
38
|
+
const char ItemLabel[], int_void ItemFunc);
|
|
39
|
+
#endif
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
** Filename: speckle.c
|
|
3
|
+
** Purpose: Routines used by classifier to filter out speckle.
|
|
4
|
+
** Author: Dan Johnson
|
|
5
|
+
** History: Mon Mar 11 10:06:14 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 "speckle.h"
|
|
22
|
+
#include "debug.h"
|
|
23
|
+
#include "blobs.h"
|
|
24
|
+
|
|
25
|
+
/**----------------------------------------------------------------------------
|
|
26
|
+
Global Data Definitions and Declarations
|
|
27
|
+
----------------------------------------------------------------------------**/
|
|
28
|
+
/* define control knobs for adjusting definition of speckle*/
|
|
29
|
+
make_float_var (MaxLargeSpeckleSize, 0.30, MakeMaxLargeSpeckleSize,
|
|
30
|
+
16, 2, SetMaxLargeSpeckleSize, "Max Large Speckle Size ...");
|
|
31
|
+
|
|
32
|
+
make_float_var (SmallSpecklePenalty, 10.0, MakeSmallSpecklePenalty,
|
|
33
|
+
16, 3, SetSmallSpecklePenalty, "Small Speckle Penalty ...");
|
|
34
|
+
|
|
35
|
+
make_float_var (LargeSpecklePenalty, 10.0, MakeLargeSpecklePenalty,
|
|
36
|
+
16, 4, SetLargeSpecklePenalty, "Large Speckle Penalty ...");
|
|
37
|
+
|
|
38
|
+
make_float_var (SmallSpeckleCertainty, -1.0, MakeSmallSpeckleCertainty,
|
|
39
|
+
16, 5, SetSmallSpeckleCertainty,
|
|
40
|
+
"Small Speckle Certainty ...");
|
|
41
|
+
|
|
42
|
+
/**----------------------------------------------------------------------------
|
|
43
|
+
Public Code
|
|
44
|
+
----------------------------------------------------------------------------**/
|
|
45
|
+
/*---------------------------------------------------------------------------*/
|
|
46
|
+
LIST AddLargeSpeckleTo(LIST Choices) {
|
|
47
|
+
/*
|
|
48
|
+
** Parameters:
|
|
49
|
+
** Choices choices to add a speckle choice to
|
|
50
|
+
** Globals:
|
|
51
|
+
** SmallSpecklePenalty rating for a small speckle
|
|
52
|
+
** LargeSpecklePenalty rating penalty for a large speckle
|
|
53
|
+
** SmallSpeckleCertainty certainty for a small speckle
|
|
54
|
+
** Operation: This routine adds a null choice to Choices with a
|
|
55
|
+
** rating equal to the worst rating in Choices plus a pad.
|
|
56
|
+
** The certainty of the new choice is the same as the
|
|
57
|
+
** certainty of the worst choice in Choices. The new choice
|
|
58
|
+
** is added to the end of Choices.
|
|
59
|
+
** Return: New Choices list with null choice added to end.
|
|
60
|
+
** Exceptions: none
|
|
61
|
+
** History: Mon Mar 11 11:08:11 1991, DSJ, Created.
|
|
62
|
+
*/
|
|
63
|
+
LIST WorstChoice;
|
|
64
|
+
char empty_lengths[] = {0};
|
|
65
|
+
|
|
66
|
+
/* if there are no other choices, use the small speckle penalty plus
|
|
67
|
+
the large speckle penalty */
|
|
68
|
+
if (Choices == NIL)
|
|
69
|
+
return (append_choice (NIL, "", empty_lengths, SmallSpecklePenalty + LargeSpecklePenalty,
|
|
70
|
+
SmallSpeckleCertainty, -1));
|
|
71
|
+
|
|
72
|
+
/* if there are other choices, add a null choice that is slightly worse
|
|
73
|
+
than the worst choice so far */
|
|
74
|
+
WorstChoice = last (Choices);
|
|
75
|
+
return (append_choice (Choices, "", empty_lengths,
|
|
76
|
+
best_probability (WorstChoice) + LargeSpecklePenalty,
|
|
77
|
+
best_certainty (WorstChoice), -1));
|
|
78
|
+
|
|
79
|
+
} /* AddLargeSpeckleTo */
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
/*---------------------------------------------------------------------------*/
|
|
83
|
+
void InitSpeckleVars() {
|
|
84
|
+
/*
|
|
85
|
+
** Parameters: none
|
|
86
|
+
** Globals: none
|
|
87
|
+
** Operation: Install the control variables needed for the speckle
|
|
88
|
+
** filters.
|
|
89
|
+
** Return: none
|
|
90
|
+
** Exceptions: none
|
|
91
|
+
** History: Mon Mar 11 12:04:59 1991, DSJ, Created.
|
|
92
|
+
*/
|
|
93
|
+
MakeMaxLargeSpeckleSize();
|
|
94
|
+
MakeSmallSpecklePenalty();
|
|
95
|
+
MakeLargeSpecklePenalty();
|
|
96
|
+
MakeSmallSpeckleCertainty();
|
|
97
|
+
} /* InitSpeckleVars */
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
/*---------------------------------------------------------------------------*/
|
|
101
|
+
BOOL8 LargeSpeckle(TBLOB *Blob, TEXTROW *Row) {
|
|
102
|
+
/*
|
|
103
|
+
** Parameters:
|
|
104
|
+
** Blob blob to test against speckle criteria
|
|
105
|
+
** Row text row that blob is in
|
|
106
|
+
** Globals:
|
|
107
|
+
** MaxLargeSpeckleSize largest allowed speckle
|
|
108
|
+
** Operation: This routine returns TRUE if both the width of height
|
|
109
|
+
** of Blob are less than the MaxLargeSpeckleSize.
|
|
110
|
+
** Return: TRUE if Blob is speckle, FALSE otherwise.
|
|
111
|
+
** Exceptions: none
|
|
112
|
+
** History: Mon Mar 11 10:06:49 1991, DSJ, Created.
|
|
113
|
+
*/
|
|
114
|
+
FLOAT32 SpeckleSize;
|
|
115
|
+
TPOINT TopLeft;
|
|
116
|
+
TPOINT BottomRight;
|
|
117
|
+
|
|
118
|
+
SpeckleSize = RowHeight (Row) * MaxLargeSpeckleSize;
|
|
119
|
+
blob_bounding_box(Blob, &TopLeft, &BottomRight);
|
|
120
|
+
|
|
121
|
+
if (TopLeft.y - BottomRight.y < SpeckleSize &&
|
|
122
|
+
BottomRight.x - TopLeft.x < SpeckleSize)
|
|
123
|
+
return (TRUE);
|
|
124
|
+
else
|
|
125
|
+
return (FALSE);
|
|
126
|
+
|
|
127
|
+
} /* LargeSpeckle */
|