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,369 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: ocrblock.cpp (Formerly block.c)
|
|
3
|
+
* Description: BLOCK member functions and iterator functions.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Fri Mar 15 09:41:28 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#include "mfcpch.h"
|
|
21
|
+
#include <stdlib.h>
|
|
22
|
+
#include "blckerr.h"
|
|
23
|
+
#include "ocrblock.h"
|
|
24
|
+
#include "tprintf.h"
|
|
25
|
+
|
|
26
|
+
#define BLOCK_LABEL_HEIGHT 150 //char height of block id
|
|
27
|
+
|
|
28
|
+
ELISTIZE_S (BLOCK)
|
|
29
|
+
/**********************************************************************
|
|
30
|
+
* BLOCK::BLOCK
|
|
31
|
+
*
|
|
32
|
+
* Constructor for a simple rectangular block.
|
|
33
|
+
**********************************************************************/
|
|
34
|
+
BLOCK::BLOCK ( //rectangular block
|
|
35
|
+
const char *name, //filename
|
|
36
|
+
BOOL8 prop, //proportional
|
|
37
|
+
inT16 kern, //kerning
|
|
38
|
+
inT16 space, //spacing
|
|
39
|
+
inT16 xmin, //bottom left
|
|
40
|
+
inT16 ymin, inT16 xmax, //top right
|
|
41
|
+
inT16 ymax):
|
|
42
|
+
PDBLK (xmin, ymin, xmax, ymax),
|
|
43
|
+
filename(name) { //box(ICOORD(xmin,ymin),ICOORD(xmax,ymax))
|
|
44
|
+
//boundaries
|
|
45
|
+
ICOORDELT_IT left_it = &leftside;
|
|
46
|
+
ICOORDELT_IT right_it = &rightside;
|
|
47
|
+
|
|
48
|
+
proportional = prop;
|
|
49
|
+
kerning = kern;
|
|
50
|
+
spacing = space;
|
|
51
|
+
font_class = -1; //not assigned
|
|
52
|
+
cell_over_xheight_ = 2.0f;
|
|
53
|
+
hand_block = NULL;
|
|
54
|
+
hand_poly = NULL;
|
|
55
|
+
left_it.set_to_list (&leftside);
|
|
56
|
+
right_it.set_to_list (&rightside);
|
|
57
|
+
//make default box
|
|
58
|
+
left_it.add_to_end (new ICOORDELT (xmin, ymin));
|
|
59
|
+
left_it.add_to_end (new ICOORDELT (xmin, ymax));
|
|
60
|
+
right_it.add_to_end (new ICOORDELT (xmax, ymin));
|
|
61
|
+
right_it.add_to_end (new ICOORDELT (xmax, ymax));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
/**********************************************************************
|
|
66
|
+
* BLOCK::set_sides
|
|
67
|
+
*
|
|
68
|
+
* Sets left and right vertex lists
|
|
69
|
+
**********************************************************************/
|
|
70
|
+
|
|
71
|
+
//void BLOCK::set_sides( //set vertex lists
|
|
72
|
+
//ICOORDELT_LIST *left, //left vertices
|
|
73
|
+
//ICOORDELT_LIST *right //right vertices
|
|
74
|
+
//)
|
|
75
|
+
//{
|
|
76
|
+
// ICOORDELT_IT left_it= &leftside; //boundaries
|
|
77
|
+
// ICOORDELT_IT right_it= &rightside;
|
|
78
|
+
|
|
79
|
+
// leftside.clear();
|
|
80
|
+
// left_it.move_to_first();
|
|
81
|
+
// left_it.add_list_before(left);
|
|
82
|
+
// rightside.clear();
|
|
83
|
+
// right_it.move_to_first();
|
|
84
|
+
// right_it.add_list_before(right);
|
|
85
|
+
//}
|
|
86
|
+
|
|
87
|
+
/**********************************************************************
|
|
88
|
+
* BLOCK::contains
|
|
89
|
+
*
|
|
90
|
+
* Return TRUE if the given point is within the block.
|
|
91
|
+
**********************************************************************/
|
|
92
|
+
|
|
93
|
+
//BOOL8 BLOCK::contains( //test containment
|
|
94
|
+
//ICOORD pt //point to test
|
|
95
|
+
//)
|
|
96
|
+
//{
|
|
97
|
+
// BLOCK_RECT_IT it=this; //rectangle iterator
|
|
98
|
+
// ICOORD bleft,tright; //corners of rectangle
|
|
99
|
+
|
|
100
|
+
// for (it.start_block();!it.cycled_rects();it.forward())
|
|
101
|
+
// {
|
|
102
|
+
// it.bounding_box(bleft,tright); //get rectangle
|
|
103
|
+
// if (pt.x()>=bleft.x() && pt.x()<=tright.x() //inside rect
|
|
104
|
+
// && pt.y()>=bleft.y() && pt.y()<=tright.y())
|
|
105
|
+
// return TRUE; //is inside
|
|
106
|
+
// }
|
|
107
|
+
// return FALSE; //not inside
|
|
108
|
+
//}
|
|
109
|
+
|
|
110
|
+
/**********************************************************************
|
|
111
|
+
* BLOCK::move
|
|
112
|
+
*
|
|
113
|
+
* Reposition block
|
|
114
|
+
**********************************************************************/
|
|
115
|
+
|
|
116
|
+
//void BLOCK::move( // reposition block
|
|
117
|
+
//const ICOORD vec // by vector
|
|
118
|
+
//)
|
|
119
|
+
//{
|
|
120
|
+
// ROW_IT row_it( &rows );
|
|
121
|
+
// ICOORDELT_IT it( &leftside );
|
|
122
|
+
|
|
123
|
+
// for( row_it.mark_cycle_pt(); !row_it.cycled_list(); row_it.forward() )
|
|
124
|
+
// row_it.data()->move( vec );
|
|
125
|
+
|
|
126
|
+
// for( it.mark_cycle_pt(); !it.cycled_list(); it.forward() )
|
|
127
|
+
// *(it.data()) += vec;
|
|
128
|
+
|
|
129
|
+
// it.set_to_list( &rightside );
|
|
130
|
+
|
|
131
|
+
// for( it.mark_cycle_pt(); !it.cycled_list(); it.forward() )
|
|
132
|
+
// *(it.data()) += vec;
|
|
133
|
+
|
|
134
|
+
// box.move( vec );
|
|
135
|
+
//}
|
|
136
|
+
|
|
137
|
+
/**********************************************************************
|
|
138
|
+
* decreasing_top_order
|
|
139
|
+
*
|
|
140
|
+
* Sort Comparator: Return <0 if row1 top < row2 top
|
|
141
|
+
**********************************************************************/
|
|
142
|
+
|
|
143
|
+
int decreasing_top_order( //
|
|
144
|
+
const void *row1,
|
|
145
|
+
const void *row2) {
|
|
146
|
+
return (*(ROW **) row2)->bounding_box ().top () -
|
|
147
|
+
(*(ROW **) row1)->bounding_box ().top ();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
/**********************************************************************
|
|
152
|
+
* BLOCK::sort_rows
|
|
153
|
+
*
|
|
154
|
+
* Order rows so that they are in order of decreasing Y coordinate
|
|
155
|
+
**********************************************************************/
|
|
156
|
+
|
|
157
|
+
void BLOCK::sort_rows() { // order on "top"
|
|
158
|
+
ROW_IT row_it(&rows);
|
|
159
|
+
|
|
160
|
+
row_it.sort (decreasing_top_order);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
/**********************************************************************
|
|
165
|
+
* BLOCK::compress
|
|
166
|
+
*
|
|
167
|
+
* Delete space between the rows. (And maybe one day, compress the rows)
|
|
168
|
+
* Fill space of block from top down, left aligning rows.
|
|
169
|
+
**********************************************************************/
|
|
170
|
+
|
|
171
|
+
void BLOCK::compress() { // squash it up
|
|
172
|
+
#define ROW_SPACING 5
|
|
173
|
+
|
|
174
|
+
ROW_IT row_it(&rows);
|
|
175
|
+
ROW *row;
|
|
176
|
+
ICOORD row_spacing (0, ROW_SPACING);
|
|
177
|
+
|
|
178
|
+
ICOORDELT_IT icoordelt_it;
|
|
179
|
+
|
|
180
|
+
sort_rows();
|
|
181
|
+
|
|
182
|
+
box = TBOX (box.topleft (), box.topleft ());
|
|
183
|
+
box.move_bottom_edge (ROW_SPACING);
|
|
184
|
+
for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) {
|
|
185
|
+
row = row_it.data ();
|
|
186
|
+
row->move (box.botleft () - row_spacing -
|
|
187
|
+
row->bounding_box ().topleft ());
|
|
188
|
+
box += row->bounding_box ();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
leftside.clear ();
|
|
192
|
+
icoordelt_it.set_to_list (&leftside);
|
|
193
|
+
icoordelt_it.add_to_end (new ICOORDELT (box.left (), box.bottom ()));
|
|
194
|
+
icoordelt_it.add_to_end (new ICOORDELT (box.left (), box.top ()));
|
|
195
|
+
rightside.clear ();
|
|
196
|
+
icoordelt_it.set_to_list (&rightside);
|
|
197
|
+
icoordelt_it.add_to_end (new ICOORDELT (box.right (), box.bottom ()));
|
|
198
|
+
icoordelt_it.add_to_end (new ICOORDELT (box.right (), box.top ()));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
/**********************************************************************
|
|
203
|
+
* BLOCK::check_pitch
|
|
204
|
+
*
|
|
205
|
+
* Check whether the block is fixed or prop, set the flag, and set
|
|
206
|
+
* the pitch if it is fixed.
|
|
207
|
+
**********************************************************************/
|
|
208
|
+
|
|
209
|
+
void BLOCK::check_pitch() { // check prop
|
|
210
|
+
// tprintf("Missing FFT fixed pitch stuff!\n");
|
|
211
|
+
pitch = -1;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
/**********************************************************************
|
|
216
|
+
* BLOCK::compress
|
|
217
|
+
*
|
|
218
|
+
* Compress and move in a single operation.
|
|
219
|
+
**********************************************************************/
|
|
220
|
+
|
|
221
|
+
void BLOCK::compress( // squash it up
|
|
222
|
+
const ICOORD vec // and move
|
|
223
|
+
) {
|
|
224
|
+
box.move (vec);
|
|
225
|
+
compress();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
/**********************************************************************
|
|
230
|
+
* BLOCK::print
|
|
231
|
+
*
|
|
232
|
+
* Print the info on a block
|
|
233
|
+
**********************************************************************/
|
|
234
|
+
|
|
235
|
+
void BLOCK::print( //print list of sides
|
|
236
|
+
FILE *, //file to print on
|
|
237
|
+
BOOL8 dump //print full detail
|
|
238
|
+
) {
|
|
239
|
+
ICOORDELT_IT it = &leftside; //iterator
|
|
240
|
+
|
|
241
|
+
box.print ();
|
|
242
|
+
tprintf ("Proportional= %s\n", proportional ? "TRUE" : "FALSE");
|
|
243
|
+
tprintf ("Kerning= %d\n", kerning);
|
|
244
|
+
tprintf ("Spacing= %d\n", spacing);
|
|
245
|
+
tprintf ("Fixed_pitch=%d\n", pitch);
|
|
246
|
+
tprintf ("Filename= %s\n", filename.string ());
|
|
247
|
+
|
|
248
|
+
if (dump) {
|
|
249
|
+
tprintf ("Left side coords are:\n");
|
|
250
|
+
for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
|
|
251
|
+
tprintf ("(%d,%d) ", it.data ()->x (), it.data ()->y ());
|
|
252
|
+
tprintf ("\n");
|
|
253
|
+
tprintf ("Right side coords are:\n");
|
|
254
|
+
it.set_to_list (&rightside);
|
|
255
|
+
for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
|
|
256
|
+
tprintf ("(%d,%d) ", it.data ()->x (), it.data ()->y ());
|
|
257
|
+
tprintf ("\n");
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
/**********************************************************************
|
|
263
|
+
* BLOCK::plot
|
|
264
|
+
*
|
|
265
|
+
* Plot the outline of a block in the given colour.
|
|
266
|
+
**********************************************************************/
|
|
267
|
+
|
|
268
|
+
//void BLOCK::plot( //draw outline
|
|
269
|
+
//WINDOW window, //window to draw in
|
|
270
|
+
//inT32 serial, //serial number
|
|
271
|
+
//COLOUR colour //colour to draw in
|
|
272
|
+
//)
|
|
273
|
+
//{
|
|
274
|
+
// ICOORD startpt; //start of outline
|
|
275
|
+
// ICOORD endpt; //end of outline
|
|
276
|
+
// ICOORD prevpt; //previous point
|
|
277
|
+
// ICOORDELT_IT it= &leftside; //iterator
|
|
278
|
+
// char number[32]; //block id
|
|
279
|
+
|
|
280
|
+
// line_color_index(window,colour); //set the colour
|
|
281
|
+
// text_color_index(window,colour);
|
|
282
|
+
// character_height(window,(float)BLOCK_LABEL_HEIGHT);
|
|
283
|
+
// text_font_index(window,6);
|
|
284
|
+
|
|
285
|
+
// if (!leftside.empty())
|
|
286
|
+
// {
|
|
287
|
+
// startpt= *(it.data()); //bottom left corner
|
|
288
|
+
//// fprintf(stderr,"Block %d bottom left is (%d,%d)\n",
|
|
289
|
+
//// serial,startpt.x(),startpt.y());
|
|
290
|
+
// sprintf(number,"%d",serial);
|
|
291
|
+
// text2d(window,startpt.x(),startpt.y(),number,0,FALSE);
|
|
292
|
+
|
|
293
|
+
// move2d(window,startpt.x(),startpt.y());
|
|
294
|
+
// do
|
|
295
|
+
// {
|
|
296
|
+
// prevpt= *(it.data()); //previous point
|
|
297
|
+
// it.forward(); //move to next point
|
|
298
|
+
// draw2d(window,prevpt.x(),it.data()->y()); //draw round corner
|
|
299
|
+
// draw2d(window,it.data()->x(),it.data()->y());
|
|
300
|
+
// }
|
|
301
|
+
// while (!it.at_last()); //until end of list
|
|
302
|
+
// endpt= *(it.data()); //end point
|
|
303
|
+
|
|
304
|
+
// move2d(window,startpt.x(),startpt.y()); //other side of boundary
|
|
305
|
+
// it.set_to_list(&rightside);
|
|
306
|
+
// prevpt=startpt;
|
|
307
|
+
// for (it.mark_cycle_pt();!it.cycled_list();it.forward())
|
|
308
|
+
// {
|
|
309
|
+
// draw2d(window,prevpt.x(),it.data()->y()); //draw round corner
|
|
310
|
+
// draw2d(window,it.data()->x(),it.data()->y());
|
|
311
|
+
// prevpt= *(it.data()); //previous point
|
|
312
|
+
// }
|
|
313
|
+
// draw2d(window,endpt.x(),endpt.y()); //close boundary
|
|
314
|
+
// if (hand_block!=NULL)
|
|
315
|
+
// hand_block->plot(window,colour,serial);
|
|
316
|
+
// }
|
|
317
|
+
//}
|
|
318
|
+
|
|
319
|
+
/**********************************************************************
|
|
320
|
+
* BLOCK::show
|
|
321
|
+
*
|
|
322
|
+
* Show the image corresponding to a block as its set of rectangles.
|
|
323
|
+
**********************************************************************/
|
|
324
|
+
|
|
325
|
+
//void BLOCK::show( //show image block
|
|
326
|
+
//IMAGE *image, //image to show
|
|
327
|
+
//WINDOW window //window to show in
|
|
328
|
+
//)
|
|
329
|
+
//{
|
|
330
|
+
// BLOCK_RECT_IT it=this; //rectangle iterator
|
|
331
|
+
// ICOORD bleft,tright; //corners of rectangle
|
|
332
|
+
|
|
333
|
+
// for (it.start_block();!it.cycled_rects();it.forward())
|
|
334
|
+
// {
|
|
335
|
+
// it.bounding_box(bleft,tright); //get rectangle
|
|
336
|
+
//// fprintf(stderr,"Drawing a block with a bottom left of (%d,%d)\n",
|
|
337
|
+
//// bleft.x(),bleft.y());
|
|
338
|
+
// show_sub_image(image,bleft.x(),bleft.y(),
|
|
339
|
+
// tright.x()-bleft.x(),tright.y()-bleft.y(),
|
|
340
|
+
// window,bleft.x(),bleft.y()); //show it
|
|
341
|
+
// }
|
|
342
|
+
//}
|
|
343
|
+
|
|
344
|
+
/**********************************************************************
|
|
345
|
+
* BLOCK::operator=
|
|
346
|
+
*
|
|
347
|
+
* Assignment - duplicate the block structure, but with an EMPTY row list.
|
|
348
|
+
**********************************************************************/
|
|
349
|
+
|
|
350
|
+
BLOCK & BLOCK::operator= ( //assignment
|
|
351
|
+
const BLOCK & source //from this
|
|
352
|
+
) {
|
|
353
|
+
this->ELIST_LINK::operator= (source);
|
|
354
|
+
this->PDBLK::operator= (source);
|
|
355
|
+
proportional = source.proportional;
|
|
356
|
+
kerning = source.kerning;
|
|
357
|
+
spacing = source.spacing;
|
|
358
|
+
filename = source.filename; //STRINGs assign ok
|
|
359
|
+
if (!rows.empty ())
|
|
360
|
+
rows.clear ();
|
|
361
|
+
// if ( !leftside.empty() )
|
|
362
|
+
// leftside.clear();
|
|
363
|
+
// if ( !rightside.empty() )
|
|
364
|
+
// rightside.clear();
|
|
365
|
+
// leftside.deep_copy( &source.leftside );
|
|
366
|
+
// rightside.deep_copy( &source.rightside );
|
|
367
|
+
// box=source.box;
|
|
368
|
+
return *this;
|
|
369
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: ocrblock.h (Formerly block.h)
|
|
3
|
+
* Description: Page block class definition.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Thu Mar 14 17:32:01 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef OCRBLOCK_H
|
|
21
|
+
#define OCRBLOCK_H
|
|
22
|
+
|
|
23
|
+
#include "img.h"
|
|
24
|
+
#include "ocrrow.h"
|
|
25
|
+
#include "pageblk.h"
|
|
26
|
+
#include "pdblock.h"
|
|
27
|
+
|
|
28
|
+
class BLOCK; //forward decl
|
|
29
|
+
|
|
30
|
+
ELISTIZEH_S (BLOCK)
|
|
31
|
+
class BLOCK:public ELIST_LINK, public PDBLK
|
|
32
|
+
//page block
|
|
33
|
+
{
|
|
34
|
+
friend class BLOCK_RECT_IT; //block iterator
|
|
35
|
+
|
|
36
|
+
//block label
|
|
37
|
+
friend void scan_hpd_blocks(const char *name,
|
|
38
|
+
PAGE_BLOCK_LIST *page_blocks, //head of full pag
|
|
39
|
+
inT32 &block_no, //no of blocks
|
|
40
|
+
BLOCK_IT *block_it);
|
|
41
|
+
friend BOOL8 read_vec_file( //read uscan output
|
|
42
|
+
STRING name, //basename of file
|
|
43
|
+
inT32 xsize, //page size //output list
|
|
44
|
+
inT32 ysize,
|
|
45
|
+
BLOCK_LIST *blocks);
|
|
46
|
+
friend BOOL8 read_pd_file( //read uscan output
|
|
47
|
+
STRING name, //basename of file
|
|
48
|
+
inT32 xsize, //page size //output list
|
|
49
|
+
inT32 ysize,
|
|
50
|
+
BLOCK_LIST *blocks);
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
BLOCK() { //empty constructor
|
|
54
|
+
hand_block = NULL;
|
|
55
|
+
hand_poly = NULL;
|
|
56
|
+
}
|
|
57
|
+
BLOCK( //simple constructor
|
|
58
|
+
const char *name, //filename
|
|
59
|
+
BOOL8 prop, //proportional
|
|
60
|
+
inT16 kern, //kerning
|
|
61
|
+
inT16 space, //spacing
|
|
62
|
+
inT16 xmin, //bottom left
|
|
63
|
+
inT16 ymin,
|
|
64
|
+
inT16 xmax, //top right
|
|
65
|
+
inT16 ymax);
|
|
66
|
+
|
|
67
|
+
// void set_sides( //set vertex lists
|
|
68
|
+
// ICOORDELT_LIST *left, //list of left vertices
|
|
69
|
+
// ICOORDELT_LIST *right); //list of right vertices
|
|
70
|
+
|
|
71
|
+
~BLOCK () { //destructor
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void set_stats( //set space size etc.
|
|
75
|
+
BOOL8 prop, //proportional
|
|
76
|
+
inT16 kern, //inter char size
|
|
77
|
+
inT16 space, //inter word size
|
|
78
|
+
inT16 ch_pitch) { //pitch if fixed
|
|
79
|
+
proportional = prop;
|
|
80
|
+
kerning = (inT8) kern;
|
|
81
|
+
spacing = space;
|
|
82
|
+
pitch = ch_pitch;
|
|
83
|
+
}
|
|
84
|
+
void set_xheight( //set char size
|
|
85
|
+
inT32 height) {
|
|
86
|
+
xheight = height;
|
|
87
|
+
}
|
|
88
|
+
void set_font_class( //set font class
|
|
89
|
+
inT16 font) {
|
|
90
|
+
font_class = font;
|
|
91
|
+
}
|
|
92
|
+
// TEXT_REGION* text_region()
|
|
93
|
+
// {
|
|
94
|
+
// return hand_block;
|
|
95
|
+
// }
|
|
96
|
+
// POLY_BLOCK* poly_block()
|
|
97
|
+
// {
|
|
98
|
+
// return hand_poly;
|
|
99
|
+
// }
|
|
100
|
+
BOOL8 prop() const { //return proportional
|
|
101
|
+
return proportional;
|
|
102
|
+
}
|
|
103
|
+
inT32 fixed_pitch() const { //return pitch
|
|
104
|
+
return pitch;
|
|
105
|
+
}
|
|
106
|
+
inT16 kern() const { //return kerning
|
|
107
|
+
return kerning;
|
|
108
|
+
}
|
|
109
|
+
inT16 font() const { //return font class
|
|
110
|
+
return font_class;
|
|
111
|
+
}
|
|
112
|
+
inT16 space() const { //return spacing
|
|
113
|
+
return spacing;
|
|
114
|
+
}
|
|
115
|
+
const char *name() const { //return filename
|
|
116
|
+
return filename.string ();
|
|
117
|
+
}
|
|
118
|
+
inT32 x_height() const { //return xheight
|
|
119
|
+
return xheight;
|
|
120
|
+
}
|
|
121
|
+
float cell_over_xheight() const {
|
|
122
|
+
return cell_over_xheight_;
|
|
123
|
+
}
|
|
124
|
+
void set_cell_over_xheight(float ratio) {
|
|
125
|
+
cell_over_xheight_ = ratio;
|
|
126
|
+
}
|
|
127
|
+
ROW_LIST *row_list() { //get rows
|
|
128
|
+
return &rows;
|
|
129
|
+
}
|
|
130
|
+
C_BLOB_LIST *blob_list() { //get blobs
|
|
131
|
+
return &c_blobs;
|
|
132
|
+
}
|
|
133
|
+
C_BLOB_LIST *reject_blobs() {
|
|
134
|
+
return &rej_blobs;
|
|
135
|
+
}
|
|
136
|
+
// void bounding_box( //get box
|
|
137
|
+
// ICOORD& bottom_left, //bottom left
|
|
138
|
+
// ICOORD& top_right) const //topright
|
|
139
|
+
// {
|
|
140
|
+
// bottom_left=box.botleft();
|
|
141
|
+
// top_right=box.topright();
|
|
142
|
+
// }
|
|
143
|
+
// const TBOX& bounding_box() const //get real box
|
|
144
|
+
// {
|
|
145
|
+
// return box;
|
|
146
|
+
// }
|
|
147
|
+
|
|
148
|
+
// BOOL8 contains( //is pt inside block
|
|
149
|
+
// ICOORD pt);
|
|
150
|
+
|
|
151
|
+
// void move( // reposition block
|
|
152
|
+
// const ICOORD vec); // by vector
|
|
153
|
+
|
|
154
|
+
void sort_rows(); //decreasing y order
|
|
155
|
+
|
|
156
|
+
void compress(); //shrink white space
|
|
157
|
+
|
|
158
|
+
void check_pitch(); //check proportional
|
|
159
|
+
|
|
160
|
+
void compress( //shrink white space
|
|
161
|
+
const ICOORD vec); //and move by vector
|
|
162
|
+
|
|
163
|
+
void print( //print summary/table
|
|
164
|
+
FILE *fp, //file to print on
|
|
165
|
+
BOOL8 dump); //dump whole table
|
|
166
|
+
|
|
167
|
+
// void plot( //draw histogram
|
|
168
|
+
// WINDOW window, //window to draw in
|
|
169
|
+
// inT32 serial, //serial number
|
|
170
|
+
// COLOUR colour); //colour to draw in
|
|
171
|
+
|
|
172
|
+
// void show( //show image
|
|
173
|
+
// IMAGE *image, //image to show
|
|
174
|
+
// WINDOW window); //window to show in
|
|
175
|
+
|
|
176
|
+
void prep_serialise() { //set ptrs to counts
|
|
177
|
+
filename.prep_serialise ();
|
|
178
|
+
rows.prep_serialise ();
|
|
179
|
+
c_blobs.prep_serialise ();
|
|
180
|
+
rej_blobs.prep_serialise ();
|
|
181
|
+
leftside.prep_serialise ();
|
|
182
|
+
rightside.prep_serialise ();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
void dump( //write external bits
|
|
186
|
+
FILE *f) {
|
|
187
|
+
filename.dump (f);
|
|
188
|
+
rows.dump (f);
|
|
189
|
+
c_blobs.dump (f);
|
|
190
|
+
rej_blobs.dump (f);
|
|
191
|
+
leftside.dump (f);
|
|
192
|
+
rightside.dump (f);
|
|
193
|
+
if (hand_block != NULL)
|
|
194
|
+
hand_block->serialise (f);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
void de_dump( //read external bits
|
|
198
|
+
FILE *f) {
|
|
199
|
+
filename.de_dump (f);
|
|
200
|
+
rows.de_dump (f);
|
|
201
|
+
c_blobs.de_dump (f);
|
|
202
|
+
rej_blobs.de_dump (f);
|
|
203
|
+
leftside.de_dump (f);
|
|
204
|
+
rightside.de_dump (f);
|
|
205
|
+
if (hand_block != NULL)
|
|
206
|
+
hand_block = TEXT_REGION::de_serialise (f);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
//assignment
|
|
210
|
+
make_serialise (BLOCK) BLOCK & operator= (
|
|
211
|
+
const BLOCK & source); //from this
|
|
212
|
+
|
|
213
|
+
private:
|
|
214
|
+
BOOL8 proportional; //proportional
|
|
215
|
+
inT8 kerning; //inter blob gap
|
|
216
|
+
inT16 spacing; //inter word gap
|
|
217
|
+
inT16 pitch; //pitch of non-props
|
|
218
|
+
inT16 font_class; //correct font class
|
|
219
|
+
inT32 xheight; //height of chars
|
|
220
|
+
float cell_over_xheight_; // Ratio of cell height to xheight.
|
|
221
|
+
STRING filename; //name of block
|
|
222
|
+
// TEXT_REGION* hand_block; //if it exists
|
|
223
|
+
// POLY_BLOCK* hand_poly; //wierd as well
|
|
224
|
+
ROW_LIST rows; //rows in block
|
|
225
|
+
C_BLOB_LIST c_blobs; //before textord
|
|
226
|
+
C_BLOB_LIST rej_blobs; //duff stuff
|
|
227
|
+
// ICOORDELT_LIST leftside; //left side vertices
|
|
228
|
+
// ICOORDELT_LIST rightside; //right side vertices
|
|
229
|
+
// TBOX box; //bounding box
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
int decreasing_top_order( //
|
|
233
|
+
const void *row1,
|
|
234
|
+
const void *row2);
|
|
235
|
+
#endif
|