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.
Files changed (612) hide show
  1. data/.document +5 -0
  2. data/Gemfile +14 -0
  3. data/Gemfile.lock +23 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +19 -0
  6. data/Rakefile +46 -0
  7. data/VERSION +1 -0
  8. data/ext/tesseract_bin/extconf.rb +17 -0
  9. data/lib/tesseract_bin.rb +12 -0
  10. data/tesseract_bin.gemspec +660 -0
  11. data/test/helper.rb +18 -0
  12. data/test/test_tesseract_bin.rb +7 -0
  13. data/vendor/tesseract-2.04/AUTHORS +8 -0
  14. data/vendor/tesseract-2.04/COPYING +23 -0
  15. data/vendor/tesseract-2.04/ChangeLog +71 -0
  16. data/vendor/tesseract-2.04/INSTALL +229 -0
  17. data/vendor/tesseract-2.04/Makefile.am +20 -0
  18. data/vendor/tesseract-2.04/Makefile.in +641 -0
  19. data/vendor/tesseract-2.04/NEWS +1 -0
  20. data/vendor/tesseract-2.04/README +138 -0
  21. data/vendor/tesseract-2.04/ReleaseNotes +213 -0
  22. data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
  23. data/vendor/tesseract-2.04/StdAfx.h +24 -0
  24. data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
  25. data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
  26. data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
  27. data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
  28. data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
  29. data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
  30. data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
  31. data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
  32. data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
  33. data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
  34. data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
  35. data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
  36. data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
  37. data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
  38. data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
  39. data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
  40. data/vendor/tesseract-2.04/ccmain/control.h +198 -0
  41. data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
  42. data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
  43. data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
  44. data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
  45. data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
  46. data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
  47. data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
  48. data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
  49. data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
  50. data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
  51. data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
  52. data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
  53. data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
  54. data/vendor/tesseract-2.04/ccmain/output.h +116 -0
  55. data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
  56. data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
  57. data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
  58. data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
  59. data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
  60. data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
  61. data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
  62. data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
  63. data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
  64. data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
  65. data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
  66. data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
  67. data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
  68. data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
  69. data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
  70. data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
  71. data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
  72. data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
  73. data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
  74. data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
  75. data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
  76. data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
  77. data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
  78. data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
  79. data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
  80. data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
  81. data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
  82. data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
  83. data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
  84. data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
  85. data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
  86. data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
  87. data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
  88. data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
  89. data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
  90. data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
  91. data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
  92. data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
  93. data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
  94. data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
  95. data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
  96. data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
  97. data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
  98. data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
  99. data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
  100. data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
  101. data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
  102. data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
  103. data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
  104. data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
  105. data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
  106. data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
  107. data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
  108. data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
  109. data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
  110. data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
  111. data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
  112. data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
  113. data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
  114. data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
  115. data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
  116. data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
  117. data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
  118. data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
  119. data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
  120. data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
  121. data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
  122. data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
  123. data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
  124. data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
  125. data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
  126. data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
  127. data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
  128. data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
  129. data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
  130. data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
  131. data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
  132. data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
  133. data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
  134. data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
  135. data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
  136. data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
  137. data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
  138. data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
  139. data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
  140. data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
  141. data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
  142. data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
  143. data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
  144. data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
  145. data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
  146. data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
  147. data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
  148. data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
  149. data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
  150. data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
  151. data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
  152. data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
  153. data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
  154. data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
  155. data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
  156. data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
  157. data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
  158. data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
  159. data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
  160. data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
  161. data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
  162. data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
  163. data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
  164. data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
  165. data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
  166. data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
  167. data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
  168. data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
  169. data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
  170. data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
  171. data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
  172. data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
  173. data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
  174. data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
  175. data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
  176. data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
  177. data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
  178. data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
  179. data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
  180. data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
  181. data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
  182. data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
  183. data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
  184. data/vendor/tesseract-2.04/ccutil/host.h +180 -0
  185. data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
  186. data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
  187. data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
  188. data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
  189. data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
  190. data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
  191. data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
  192. data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
  193. data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
  194. data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
  195. data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
  196. data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
  197. data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
  198. data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
  199. data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
  200. data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
  201. data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
  202. data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
  203. data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
  204. data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
  205. data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
  206. data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
  207. data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
  208. data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
  209. data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
  210. data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
  211. data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
  212. data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
  213. data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
  214. data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
  215. data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
  216. data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
  217. data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
  218. data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
  219. data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
  220. data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
  221. data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
  222. data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
  223. data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
  224. data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
  225. data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
  226. data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
  227. data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
  228. data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
  229. data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
  230. data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
  231. data/vendor/tesseract-2.04/classify/baseline.h +91 -0
  232. data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
  233. data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
  234. data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
  235. data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
  236. data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
  237. data/vendor/tesseract-2.04/classify/cluster.h +158 -0
  238. data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
  239. data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
  240. data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
  241. data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
  242. data/vendor/tesseract-2.04/classify/extern.h +32 -0
  243. data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
  244. data/vendor/tesseract-2.04/classify/extract.h +36 -0
  245. data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
  246. data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
  247. data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
  248. data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
  249. data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
  250. data/vendor/tesseract-2.04/classify/float2int.h +65 -0
  251. data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
  252. data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
  253. data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
  254. data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
  255. data/vendor/tesseract-2.04/classify/fxid.h +69 -0
  256. data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
  257. data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
  258. data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
  259. data/vendor/tesseract-2.04/classify/intfx.h +63 -0
  260. data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
  261. data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
  262. data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
  263. data/vendor/tesseract-2.04/classify/intproto.h +320 -0
  264. data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
  265. data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
  266. data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
  267. data/vendor/tesseract-2.04/classify/mf.h +43 -0
  268. data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
  269. data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
  270. data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
  271. data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
  272. data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
  273. data/vendor/tesseract-2.04/classify/mfx.h +52 -0
  274. data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
  275. data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
  276. data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
  277. data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
  278. data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
  279. data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
  280. data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
  281. data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
  282. data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
  283. data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
  284. data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
  285. data/vendor/tesseract-2.04/classify/protos.h +258 -0
  286. data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
  287. data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
  288. data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
  289. data/vendor/tesseract-2.04/classify/speckle.h +69 -0
  290. data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
  291. data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
  292. data/vendor/tesseract-2.04/config/config.guess +1466 -0
  293. data/vendor/tesseract-2.04/config/config.h.in +188 -0
  294. data/vendor/tesseract-2.04/config/config.sub +1579 -0
  295. data/vendor/tesseract-2.04/config/depcomp +530 -0
  296. data/vendor/tesseract-2.04/config/install-sh +269 -0
  297. data/vendor/tesseract-2.04/config/missing +198 -0
  298. data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
  299. data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
  300. data/vendor/tesseract-2.04/configure +10424 -0
  301. data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
  302. data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
  303. data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
  304. data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
  305. data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
  306. data/vendor/tesseract-2.04/cutil/const.h +108 -0
  307. data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
  308. data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
  309. data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
  310. data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
  311. data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
  312. data/vendor/tesseract-2.04/cutil/debug.h +348 -0
  313. data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
  314. data/vendor/tesseract-2.04/cutil/efio.h +32 -0
  315. data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
  316. data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
  317. data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
  318. data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
  319. data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
  320. data/vendor/tesseract-2.04/cutil/general.h +33 -0
  321. data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
  322. data/vendor/tesseract-2.04/cutil/globals.h +70 -0
  323. data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
  324. data/vendor/tesseract-2.04/cutil/listio.h +43 -0
  325. data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
  326. data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
  327. data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
  328. data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
  329. data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
  330. data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
  331. data/vendor/tesseract-2.04/cutil/structures.h +112 -0
  332. data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
  333. data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
  334. data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
  335. data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
  336. data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
  337. data/vendor/tesseract-2.04/cutil/variables.h +170 -0
  338. data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
  339. data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
  340. data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
  341. data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
  342. data/vendor/tesseract-2.04/dict/choices.h +241 -0
  343. data/vendor/tesseract-2.04/dict/context.cpp +270 -0
  344. data/vendor/tesseract-2.04/dict/context.h +82 -0
  345. data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
  346. data/vendor/tesseract-2.04/dict/dawg.h +394 -0
  347. data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
  348. data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
  349. data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
  350. data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
  351. data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
  352. data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
  353. data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
  354. data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
  355. data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
  356. data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
  357. data/vendor/tesseract-2.04/dict/permngram.h +33 -0
  358. data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
  359. data/vendor/tesseract-2.04/dict/permnum.h +83 -0
  360. data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
  361. data/vendor/tesseract-2.04/dict/permute.h +93 -0
  362. data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
  363. data/vendor/tesseract-2.04/dict/reduce.h +112 -0
  364. data/vendor/tesseract-2.04/dict/states.cpp +382 -0
  365. data/vendor/tesseract-2.04/dict/states.h +111 -0
  366. data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
  367. data/vendor/tesseract-2.04/dict/stopper.h +103 -0
  368. data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
  369. data/vendor/tesseract-2.04/dict/trie.h +190 -0
  370. data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
  371. data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
  372. data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
  373. data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
  374. data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
  375. data/vendor/tesseract-2.04/eurotext.tif +0 -0
  376. data/vendor/tesseract-2.04/image/Makefile.am +10 -0
  377. data/vendor/tesseract-2.04/image/Makefile.in +596 -0
  378. data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
  379. data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
  380. data/vendor/tesseract-2.04/image/img.h +336 -0
  381. data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
  382. data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
  383. data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
  384. data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
  385. data/vendor/tesseract-2.04/image/imgio.h +22 -0
  386. data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
  387. data/vendor/tesseract-2.04/image/imgs.h +102 -0
  388. data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
  389. data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
  390. data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
  391. data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
  392. data/vendor/tesseract-2.04/image/svshowim.h +25 -0
  393. data/vendor/tesseract-2.04/java/Makefile.am +4 -0
  394. data/vendor/tesseract-2.04/java/Makefile.in +473 -0
  395. data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
  396. data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
  397. data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
  398. data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
  399. data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
  400. data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
  401. data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
  402. data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
  403. data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
  404. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
  405. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
  406. data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
  407. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
  408. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
  409. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
  410. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
  411. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
  412. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
  413. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
  414. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
  415. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
  416. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
  417. data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
  418. data/vendor/tesseract-2.04/java/makefile +55 -0
  419. data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
  420. data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
  421. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
  422. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
  423. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
  424. data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
  425. data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
  426. data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
  427. data/vendor/tesseract-2.04/phototest.tif +0 -0
  428. data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
  429. data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
  430. data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
  431. data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
  432. data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
  433. data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
  434. data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
  435. data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
  436. data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
  437. data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
  438. data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
  439. data/vendor/tesseract-2.04/tessdata/confsets +3 -0
  440. data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
  441. data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
  442. data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
  443. data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
  444. data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
  445. data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
  446. data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
  447. data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
  448. data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
  449. data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
  450. data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
  451. data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
  452. data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
  453. data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
  454. data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
  455. data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
  456. data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
  457. data/vendor/tesseract-2.04/tessdll.cpp +351 -0
  458. data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
  459. data/vendor/tesseract-2.04/tessdll.h +143 -0
  460. data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
  461. data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
  462. data/vendor/tesseract-2.04/tesseract.dsw +116 -0
  463. data/vendor/tesseract-2.04/tesseract.sln +59 -0
  464. data/vendor/tesseract-2.04/tesseract.spec +188 -0
  465. data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
  466. data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
  467. data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
  468. data/vendor/tesseract-2.04/testing/README +43 -0
  469. data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
  470. data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
  471. data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
  472. data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
  473. data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
  474. data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
  475. data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
  476. data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
  477. data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
  478. data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
  479. data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
  480. data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
  481. data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
  482. data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
  483. data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
  484. data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
  485. data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
  486. data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
  487. data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
  488. data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
  489. data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
  490. data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
  491. data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
  492. data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
  493. data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
  494. data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
  495. data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
  496. data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
  497. data/vendor/tesseract-2.04/textord/makerow.h +295 -0
  498. data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
  499. data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
  500. data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
  501. data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
  502. data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
  503. data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
  504. data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
  505. data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
  506. data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
  507. data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
  508. data/vendor/tesseract-2.04/textord/tessout.h +76 -0
  509. data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
  510. data/vendor/tesseract-2.04/textord/topitch.h +195 -0
  511. data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
  512. data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
  513. data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
  514. data/vendor/tesseract-2.04/textord/tospace.h +193 -0
  515. data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
  516. data/vendor/tesseract-2.04/textord/tovars.h +94 -0
  517. data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
  518. data/vendor/tesseract-2.04/textord/underlin.h +53 -0
  519. data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
  520. data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
  521. data/vendor/tesseract-2.04/training/Makefile.am +54 -0
  522. data/vendor/tesseract-2.04/training/Makefile.in +720 -0
  523. data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
  524. data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
  525. data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
  526. data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
  527. data/vendor/tesseract-2.04/training/mergenf.h +106 -0
  528. data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
  529. data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
  530. data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
  531. data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
  532. data/vendor/tesseract-2.04/training/name2char.h +38 -0
  533. data/vendor/tesseract-2.04/training/training.cpp +190 -0
  534. data/vendor/tesseract-2.04/training/training.h +130 -0
  535. data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
  536. data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
  537. data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
  538. data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
  539. data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
  540. data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
  541. data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
  542. data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
  543. data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
  544. data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
  545. data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
  546. data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
  547. data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
  548. data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
  549. data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
  550. data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
  551. data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
  552. data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
  553. data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
  554. data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
  555. data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
  556. data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
  557. data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
  558. data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
  559. data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
  560. data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
  561. data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
  562. data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
  563. data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
  564. data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
  565. data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
  566. data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
  567. data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
  568. data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
  569. data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
  570. data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
  571. data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
  572. data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
  573. data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
  574. data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
  575. data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
  576. data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
  577. data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
  578. data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
  579. data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
  580. data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
  581. data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
  582. data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
  583. data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
  584. data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
  585. data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
  586. data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
  587. data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
  588. data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
  589. data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
  590. data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
  591. data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
  592. data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
  593. data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
  594. data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
  595. data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
  596. data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
  597. data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
  598. data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
  599. data/vendor/tesseract-2.04/wordrec/render.h +58 -0
  600. data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
  601. data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
  602. data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
  603. data/vendor/tesseract-2.04/wordrec/split.h +115 -0
  604. data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
  605. data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
  606. data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
  607. data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
  608. data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
  609. data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
  610. data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
  611. data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
  612. metadata +708 -0
@@ -0,0 +1,549 @@
1
+ /**********************************************************************
2
+ * File: tstruct.cpp (Formerly tstruct.c)
3
+ * Description: Code to manipulate the structures of the C++/C interface.
4
+ * Author: Ray Smith
5
+ * Created: Thu Apr 23 15:49:29 BST 1992
6
+ *
7
+ * (C) Copyright 1992, 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 "tfacep.h"
22
+ #include "tstruct.h"
23
+ //#include "structures.h"
24
+
25
+ static ERRCODE BADFRAGMENTS = "Couldn't find matching fragment ends";
26
+
27
+ ELISTIZE (FRAGMENT)
28
+ //extern /*"C"*/ oldoutline(TESSLINE*);
29
+ /**********************************************************************
30
+ * FRAGMENT::FRAGMENT
31
+ *
32
+ * Constructor for fragments.
33
+ **********************************************************************/
34
+ FRAGMENT::FRAGMENT ( //constructor
35
+ EDGEPT * head_pt, //start point
36
+ EDGEPT * tail_pt //end point
37
+ ):head (head_pt->pos.x, head_pt->pos.y), tail (tail_pt->pos.x,
38
+ tail_pt->pos.y) {
39
+ headpt = head_pt; // save ptrs
40
+ tailpt = tail_pt;
41
+ }
42
+
43
+ // Helper function to make a fake PBLOB formed from the bounding box
44
+ // of the given old-format outline.
45
+ static PBLOB* MakeRectBlob(TESSLINE* ol) {
46
+ POLYPT_LIST poly_list;
47
+ POLYPT_IT poly_it = &poly_list;
48
+ FCOORD pos, vec;
49
+ POLYPT *polypt;
50
+
51
+ // Create points at each of the 4 corners of the rectangle in turn.
52
+ pos = FCOORD(ol->topleft.x, ol->topleft.y);
53
+ vec = FCOORD(0.0f, ol->botright.y - ol->topleft.y);
54
+ polypt = new POLYPT(pos, vec);
55
+ poly_it.add_after_then_move(polypt);
56
+ pos = FCOORD(ol->topleft.x, ol->botright.y);
57
+ vec = FCOORD(ol->botright.x - ol->topleft.x, 0.0f);
58
+ polypt = new POLYPT(pos, vec);
59
+ poly_it.add_after_then_move(polypt);
60
+ pos = FCOORD(ol->botright.x, ol->botright.y);
61
+ vec = FCOORD(0.0f, ol->topleft.y - ol->botright.y);
62
+ polypt = new POLYPT(pos, vec);
63
+ poly_it.add_after_then_move(polypt);
64
+ pos = FCOORD(ol->botright.x, ol->topleft.y);
65
+ vec = FCOORD(ol->topleft.x - ol->botright.x, 0.0f);
66
+ polypt = new POLYPT(pos, vec);
67
+ poly_it.add_after_then_move(polypt);
68
+
69
+ OUTLINE_LIST out_list;
70
+ OUTLINE_IT out_it = &out_list;
71
+ out_it.add_after_then_move(new OUTLINE(&poly_it));
72
+ return new PBLOB(&out_list);
73
+ }
74
+
75
+ /**********************************************************************
76
+ * make_ed_word
77
+ *
78
+ * Make an editor format word from the tess style word.
79
+ **********************************************************************/
80
+
81
+ WERD *make_ed_word( //construct word
82
+ TWERD *tessword, //word to convert
83
+ WERD *clone //clone this one
84
+ ) {
85
+ WERD *word; //converted word
86
+ TBLOB *tblob; //current blob
87
+ PBLOB *blob; //new blob
88
+ PBLOB_LIST blobs; //list of blobs
89
+ PBLOB_IT blob_it = &blobs; //iterator
90
+
91
+ for (tblob = tessword->blobs; tblob != NULL; tblob = tblob->next) {
92
+ blob = make_ed_blob (tblob);
93
+ if (blob == NULL && tblob->outlines != NULL) {
94
+ // Make a fake blob using the bounding box rectangle of the 1st outline.
95
+ blob = MakeRectBlob(tblob->outlines);
96
+ }
97
+ if (blob != NULL) {
98
+ blob_it.add_after_then_move (blob);
99
+ }
100
+ }
101
+ if (!blobs.empty ())
102
+ word = new WERD (&blobs, clone);
103
+ else
104
+ word = NULL;
105
+ return word;
106
+ }
107
+
108
+
109
+ /**********************************************************************
110
+ * make_ed_blob
111
+ *
112
+ * Make an editor format blob from the tess style blob.
113
+ **********************************************************************/
114
+
115
+ PBLOB *make_ed_blob( //construct blob
116
+ TBLOB *tessblob //blob to convert
117
+ ) {
118
+ TESSLINE *tessol; //tess outline
119
+ FRAGMENT_LIST fragments; //list of fragments
120
+ OUTLINE *outline; //current outline
121
+ OUTLINE_LIST out_list; //list of outlines
122
+ OUTLINE_IT out_it = &out_list; //iterator
123
+
124
+ for (tessol = tessblob->outlines; tessol != NULL; tessol = tessol->next) {
125
+ //stick in list
126
+ register_outline(tessol, &fragments);
127
+ }
128
+ while (!fragments.empty ()) {
129
+ outline = make_ed_outline (&fragments);
130
+ if (outline != NULL) {
131
+ out_it.add_after_then_move (outline);
132
+ }
133
+ }
134
+ if (out_it.empty())
135
+ return NULL; //couldn't do it
136
+ return new PBLOB (&out_list); //turn to blob
137
+ }
138
+
139
+
140
+ /**********************************************************************
141
+ * make_ed_outline
142
+ *
143
+ * Make an editor format outline from the list of fragments.
144
+ **********************************************************************/
145
+
146
+ OUTLINE *make_ed_outline( //constructoutline
147
+ FRAGMENT_LIST *list //list of fragments
148
+ ) {
149
+ FRAGMENT *fragment; //current fragment
150
+ EDGEPT *edgept; //current point
151
+ ICOORD headpos; //coords of head
152
+ ICOORD tailpos; //coords of tail
153
+ FCOORD pos; //coords of edgept
154
+ FCOORD vec; //empty
155
+ POLYPT *polypt; //current point
156
+ POLYPT_LIST poly_list; //list of point
157
+ POLYPT_IT poly_it = &poly_list;//iterator
158
+ FRAGMENT_IT fragment_it = list;//fragment
159
+
160
+ headpos = fragment_it.data ()->head;
161
+ do {
162
+ fragment = fragment_it.data ();
163
+ edgept = fragment->headpt; //start of segment
164
+ do {
165
+ pos = FCOORD (edgept->pos.x, edgept->pos.y);
166
+ vec = FCOORD (edgept->vec.x, edgept->vec.y);
167
+ polypt = new POLYPT (pos, vec);
168
+ //add to list
169
+ poly_it.add_after_then_move (polypt);
170
+ edgept = edgept->next;
171
+ }
172
+ while (edgept != fragment->tailpt);
173
+ tailpos = ICOORD (edgept->pos.x, edgept->pos.y);
174
+ //get rid of it
175
+ delete fragment_it.extract ();
176
+ if (tailpos != headpos) {
177
+ if (fragment_it.empty ()) {
178
+ return NULL;
179
+ }
180
+ fragment_it.forward ();
181
+ //find next segment
182
+ for (fragment_it.mark_cycle_pt (); !fragment_it.cycled_list () &&
183
+ fragment_it.data ()->head != tailpos;
184
+ fragment_it.forward ());
185
+ if (fragment_it.data ()->head != tailpos) {
186
+ // It is legitimate for the heads to not all match to tails,
187
+ // since not all combinations of seams always make sense.
188
+ for (fragment_it.mark_cycle_pt ();
189
+ !fragment_it.cycled_list (); fragment_it.forward ()) {
190
+ fragment = fragment_it.extract ();
191
+ delete fragment;
192
+ }
193
+ return NULL; //can't do it
194
+ }
195
+ }
196
+ }
197
+ while (tailpos != headpos);
198
+ return new OUTLINE (&poly_it); //turn to outline
199
+ }
200
+
201
+
202
+ /**********************************************************************
203
+ * register_outline
204
+ *
205
+ * Add the fragments in the given outline to the list
206
+ **********************************************************************/
207
+
208
+ void register_outline( //add fragments
209
+ TESSLINE *outline, //tess format
210
+ FRAGMENT_LIST *list //list to add to
211
+ ) {
212
+ EDGEPT *startpt; //start of outline
213
+ EDGEPT *headpt; //start of fragment
214
+ EDGEPT *tailpt; //end of fragment
215
+ FRAGMENT *fragment; //new fragment
216
+ FRAGMENT_IT it = list; //iterator
217
+
218
+ startpt = outline->loop;
219
+ do {
220
+ startpt = startpt->next;
221
+ if (startpt == NULL)
222
+ return; //illegal!
223
+ }
224
+ while (startpt->flags[0] == 0 && startpt != outline->loop);
225
+ headpt = startpt;
226
+ do
227
+ startpt = startpt->next;
228
+ while (startpt->flags[0] != 0 && startpt != headpt);
229
+ if (startpt->flags[0] != 0)
230
+ return; //all hidden!
231
+
232
+ headpt = startpt;
233
+ do {
234
+ tailpt = headpt;
235
+ do
236
+ tailpt = tailpt->next;
237
+ while (tailpt->flags[0] == 0 && tailpt != startpt);
238
+ fragment = new FRAGMENT (headpt, tailpt);
239
+ it.add_after_then_move (fragment);
240
+ while (tailpt->flags[0] != 0)
241
+ tailpt = tailpt->next;
242
+ headpt = tailpt;
243
+ }
244
+ while (tailpt != startpt);
245
+ }
246
+
247
+
248
+ /**********************************************************************
249
+ * convert_choice_lists
250
+ *
251
+ * Convert the ARRAY of TESS_LIST of TESS_CHOICEs into a BLOB_CHOICE_LIST.
252
+ **********************************************************************/
253
+
254
+ void convert_choice_lists( //convert lists
255
+ ARRAY tessarray, //list from tess
256
+ BLOB_CHOICE_LIST_CLIST *ratings //list of results
257
+ ) {
258
+ inT32 length; //elements in array
259
+ inT32 index; //index to array
260
+ LIST result; //tess output
261
+ //iterator
262
+ BLOB_CHOICE_LIST_C_IT it = ratings;
263
+ BLOB_CHOICE_LIST *choice; //created choice
264
+
265
+ if (tessarray != NULL) {
266
+ length = array_count (tessarray);
267
+ for (index = 0; index < length; index++) {
268
+ result = (LIST) array_value (tessarray, index);
269
+ //make one
270
+ choice = new BLOB_CHOICE_LIST;
271
+ //convert blob choices
272
+ convert_choice_list(result, *choice);
273
+ //add to super list
274
+ it.add_after_then_move (choice);
275
+ }
276
+ free_mem(tessarray); //lists already freed
277
+ }
278
+ }
279
+
280
+
281
+ /**********************************************************************
282
+ * convert_choice_list
283
+ *
284
+ * Convert the LIST of TESS_CHOICEs into a BLOB_CHOICE_LIST.
285
+ **********************************************************************/
286
+
287
+ void convert_choice_list( //convert lists
288
+ LIST list, //list from tess
289
+ BLOB_CHOICE_LIST &ratings //list of results
290
+ ) {
291
+ LIST result; //tess output
292
+ BLOB_CHOICE_IT it = &ratings; //iterator
293
+ BLOB_CHOICE *choice; //created choice
294
+ A_CHOICE *tesschoice; //choice to convert
295
+
296
+ for (result = list; result != NULL; result = result->next) {
297
+ //traverse list
298
+ tesschoice = (A_CHOICE *) result->node;
299
+ //make one
300
+ choice = new BLOB_CHOICE (tesschoice->string, tesschoice->rating,
301
+ tesschoice->certainty, tesschoice->config,
302
+ tesschoice->script);
303
+ it.add_after_then_move (choice);
304
+ }
305
+ destroy_nodes (list, (void (*)(void *)) free_choice);
306
+ //get rid of it
307
+ }
308
+
309
+
310
+ /**********************************************************************
311
+ * make_tess_row
312
+ *
313
+ * Make a fake row structure to pass to the tesseract matchers.
314
+ **********************************************************************/
315
+
316
+ void make_tess_row( //make fake row
317
+ DENORM *denorm, //row info
318
+ TEXTROW *tessrow //output row
319
+ ) {
320
+ tessrow->baseline.segments = 1;
321
+ tessrow->baseline.xstarts[0] = -32767;
322
+ tessrow->baseline.xstarts[1] = 32767;
323
+ tessrow->baseline.quads[0].a = 0;
324
+ tessrow->baseline.quads[0].b = 0;
325
+ tessrow->baseline.quads[0].c = bln_baseline_offset;
326
+ tessrow->xheight.segments = 1;
327
+ tessrow->xheight.xstarts[0] = -32767;
328
+ tessrow->xheight.xstarts[1] = 32767;
329
+ tessrow->xheight.quads[0].a = 0;
330
+ tessrow->xheight.quads[0].b = 0;
331
+ tessrow->xheight.quads[0].c = bln_x_height + bln_baseline_offset;
332
+ tessrow->lineheight = bln_x_height;
333
+ if (denorm != NULL) {
334
+ tessrow->ascrise = denorm->row ()->ascenders () * denorm->scale ();
335
+ tessrow->descdrop = denorm->row ()->descenders () * denorm->scale ();
336
+ } else {
337
+ tessrow->ascrise = bln_baseline_offset;
338
+ tessrow->descdrop = -bln_baseline_offset;
339
+ }
340
+ }
341
+
342
+
343
+ /**********************************************************************
344
+ * make_tess_word
345
+ *
346
+ * Convert the word to Tess format.
347
+ **********************************************************************/
348
+
349
+ TWERD *make_tess_word( //convert owrd
350
+ WERD *word, //word to do
351
+ TEXTROW *row //fake row
352
+ ) {
353
+ TWERD *tessword; //tess format
354
+
355
+ tessword = newword (); //use old allocator
356
+ tessword->row = row; //give them something
357
+ //copy string
358
+ tessword->correct = strsave (word->text ());
359
+ tessword->guess = NULL;
360
+ tessword->blobs = make_tess_blobs (word->blob_list ());
361
+ tessword->blanks = 1;
362
+ tessword->blobcount = word->blob_list ()->length ();
363
+ tessword->next = NULL;
364
+ return tessword;
365
+ }
366
+
367
+
368
+ /**********************************************************************
369
+ * make_tess_blobs
370
+ *
371
+ * Make Tess style blobs from a list of BLOBs.
372
+ **********************************************************************/
373
+
374
+ TBLOB *make_tess_blobs( //make tess blobs
375
+ PBLOB_LIST *bloblist //list to convert
376
+ ) {
377
+ PBLOB_IT it = bloblist; //iterator
378
+ PBLOB *blob; //current blob
379
+ TBLOB *head; //output list
380
+ TBLOB *tail; //end of list
381
+ TBLOB *tessblob;
382
+
383
+ head = NULL;
384
+ tail = NULL;
385
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
386
+ blob = it.data ();
387
+ tessblob = make_tess_blob (blob, TRUE);
388
+ if (head)
389
+ tail->next = tessblob;
390
+ else
391
+ head = tessblob;
392
+ tail = tessblob;
393
+ }
394
+ return head;
395
+ }
396
+
397
+
398
+ /**********************************************************************
399
+ * make_tess_blob
400
+ *
401
+ * Make a single Tess style blob
402
+ **********************************************************************/
403
+
404
+ TBLOB *make_tess_blob( //make tess blob
405
+ PBLOB *blob, //blob to convert
406
+ BOOL8 flatten //flatten outline structure
407
+ ) {
408
+ inT32 index;
409
+ TBLOB *tessblob;
410
+
411
+ tessblob = newblob ();
412
+ tessblob->outlines = (struct olinestruct *)
413
+ make_tess_outlines (blob->out_list (), flatten);
414
+ for (index = 0; index < TBLOBFLAGS; index++)
415
+ tessblob->flags[index] = 0; //!!
416
+ tessblob->correct = 0;
417
+ tessblob->guess = 0;
418
+ for (index = 0; index < MAX_WO_CLASSES; index++) {
419
+ tessblob->classes[index] = 0;
420
+ tessblob->values[index] = 0;
421
+ }
422
+ tessblob->next = NULL;
423
+ return tessblob;
424
+ }
425
+
426
+
427
+ /**********************************************************************
428
+ * make_tess_outlines
429
+ *
430
+ * Make Tess style outlines from a list of OUTLINEs.
431
+ **********************************************************************/
432
+
433
+ TESSLINE *make_tess_outlines( //make tess outlines
434
+ OUTLINE_LIST *outlinelist, //list to convert
435
+ BOOL8 flatten //flatten outline structure
436
+ ) {
437
+ OUTLINE_IT it = outlinelist; //iterator
438
+ OUTLINE *outline; //current outline
439
+ TESSLINE *head; //output list
440
+ TESSLINE *tail; //end of list
441
+ TESSLINE *tessoutline;
442
+
443
+ head = NULL;
444
+ tail = NULL;
445
+ for (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
446
+ outline = it.data ();
447
+ tessoutline = newoutline ();
448
+ tessoutline->compactloop = NULL;
449
+ tessoutline->loop = make_tess_edgepts (outline->polypts (),
450
+ tessoutline->topleft,
451
+ tessoutline->botright);
452
+ if (tessoutline->loop == NULL) {
453
+ oldoutline(tessoutline);
454
+ continue;
455
+ }
456
+ tessoutline->start = tessoutline->loop->pos;
457
+ tessoutline->node = NULL;
458
+ tessoutline->next = NULL;
459
+ tessoutline->child = NULL;
460
+ if (!outline->child ()->empty ()) {
461
+ if (flatten)
462
+ tessoutline->next = (struct olinestruct *)
463
+ make_tess_outlines (outline->child (), flatten);
464
+ else {
465
+ tessoutline->next = NULL;
466
+ tessoutline->child = (struct olinestruct *)
467
+ make_tess_outlines (outline->child (), flatten);
468
+ }
469
+ }
470
+ else
471
+ tessoutline->next = NULL;
472
+ if (head)
473
+ tail->next = tessoutline;
474
+ else
475
+ head = tessoutline;
476
+ while (tessoutline->next != NULL)
477
+ tessoutline = tessoutline->next;
478
+ tail = tessoutline;
479
+ }
480
+ return head;
481
+ }
482
+
483
+
484
+ /**********************************************************************
485
+ * make_tess_edgepts
486
+ *
487
+ * Make Tess style edgepts from a list of POLYPTs.
488
+ **********************************************************************/
489
+
490
+ EDGEPT *make_tess_edgepts( //make tess edgepts
491
+ POLYPT_LIST *edgeptlist, //list to convert
492
+ TPOINT &tl, //bounding box
493
+ TPOINT &br) {
494
+ inT32 index;
495
+ POLYPT_IT it = edgeptlist; //iterator
496
+ POLYPT *edgept; //current edgept
497
+ EDGEPT *head; //output list
498
+ EDGEPT *tail; //end of list
499
+ EDGEPT *tessedgept;
500
+
501
+ head = NULL;
502
+ tail = NULL;
503
+ tl.x = MAX_INT16;
504
+ tl.y = -MAX_INT16;
505
+ br.x = -MAX_INT16;
506
+ br.y = MAX_INT16;
507
+ for (it.mark_cycle_pt (); !it.cycled_list ();) {
508
+ edgept = it.data ();
509
+ tessedgept = newedgept ();
510
+ tessedgept->pos.x = (inT16) edgept->pos.x ();
511
+ tessedgept->pos.y = (inT16) edgept->pos.y ();
512
+ if (tessedgept->pos.x < tl.x)
513
+ tl.x = tessedgept->pos.x;
514
+ if (tessedgept->pos.x > br.x)
515
+ br.x = tessedgept->pos.x;
516
+ if (tessedgept->pos.y > tl.y)
517
+ tl.y = tessedgept->pos.y;
518
+ if (tessedgept->pos.y < br.y)
519
+ br.y = tessedgept->pos.y;
520
+ if (head != NULL && tessedgept->pos.x == tail->pos.x
521
+ && tessedgept->pos.y == tail->pos.y) {
522
+ oldedgept(tessedgept);
523
+ }
524
+ else {
525
+ for (index = 0; index < EDGEPTFLAGS; index++)
526
+ tessedgept->flags[index] = 0;
527
+ if (head != NULL) {
528
+ tail->vec.x = tessedgept->pos.x - tail->pos.x;
529
+ tail->vec.y = tessedgept->pos.y - tail->pos.y;
530
+ tessedgept->prev = tail;
531
+ }
532
+ tessedgept->next = head;
533
+ if (head)
534
+ tail->next = tessedgept;
535
+ else
536
+ head = tessedgept;
537
+ tail = tessedgept;
538
+ }
539
+ it.forward ();
540
+ }
541
+ head->prev = tail;
542
+ tail->vec.x = head->pos.x - tail->pos.x;
543
+ tail->vec.y = head->pos.y - tail->pos.y;
544
+ if (head == tail) {
545
+ oldedgept(head);
546
+ return NULL; //empty
547
+ }
548
+ return head;
549
+ }
@@ -0,0 +1,108 @@
1
+ /**********************************************************************
2
+ * File: tstruct.h (Formerly tstruct.h)
3
+ * Description: Code to manipulate the structures of the C++/C interface.
4
+ * Author: Ray Smith
5
+ * Created: Thu Apr 23 15:49:29 BST 1992
6
+ *
7
+ * (C) Copyright 1992, 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 TSTRUCT_H
21
+ #define TSTRUCT_H
22
+
23
+ #include "tessarray.h"
24
+ #include "werd.h"
25
+ #include "tessclas.h"
26
+ #include "ratngs.h"
27
+ #include "notdll.h"
28
+ #include "oldlist.h"
29
+
30
+ /*
31
+ struct TESS_LIST
32
+ {
33
+ TESS_LIST *node; //data
34
+ TESS_LIST *next; //next in list
35
+ };
36
+
37
+ struct TESS_CHOICE
38
+ {
39
+ float rating; //scaled
40
+ float certainty; //absolute
41
+ char permuter; //which permuter code
42
+ inT8 config; //which config
43
+ char* string; //really can!
44
+ };
45
+ */
46
+ class FRAGMENT:public ELIST_LINK
47
+ {
48
+ public:
49
+ FRAGMENT() { //constructor
50
+ }
51
+ FRAGMENT(EDGEPT *head_pt, //start
52
+ EDGEPT *tail_pt); //end
53
+
54
+ ICOORD head; //coords of start
55
+ ICOORD tail; //coords of end
56
+ EDGEPT *headpt; //start point
57
+ EDGEPT *tailpt; //end point
58
+
59
+ NEWDELETE2 (FRAGMENT)
60
+ };
61
+
62
+ ELISTIZEH (FRAGMENT)
63
+ WERD *make_ed_word( //construct word
64
+ TWERD *tessword, //word to convert
65
+ WERD *clone //clone this one
66
+ );
67
+ PBLOB *make_ed_blob( //construct blob
68
+ TBLOB *tessblob //blob to convert
69
+ );
70
+ OUTLINE *make_ed_outline( //constructoutline
71
+ FRAGMENT_LIST *list //list of fragments
72
+ );
73
+ void register_outline( //add fragments
74
+ TESSLINE *outline, //tess format
75
+ FRAGMENT_LIST *list //list to add to
76
+ );
77
+ void convert_choice_lists( //convert lists
78
+ ARRAY tessarray, //list from tess
79
+ BLOB_CHOICE_LIST_CLIST *ratings //list of results
80
+ );
81
+ void convert_choice_list( //convert lists
82
+ LIST list, //list from tess
83
+ BLOB_CHOICE_LIST &ratings //list of results
84
+ );
85
+ void make_tess_row( //make fake row
86
+ DENORM *denorm, //row info
87
+ TEXTROW *tessrow //output row
88
+ );
89
+ TWERD *make_tess_word( //convert owrd
90
+ WERD *word, //word to do
91
+ TEXTROW *row //fake row
92
+ );
93
+ TBLOB *make_tess_blobs( //make tess blobs
94
+ PBLOB_LIST *bloblist //list to convert
95
+ );
96
+ TBLOB *make_tess_blob( //make tess blob
97
+ PBLOB *blob, //blob to convert
98
+ BOOL8 flatten //flatten outline structure
99
+ );
100
+ TESSLINE *make_tess_outlines( //make tess outlines
101
+ OUTLINE_LIST *outlinelist, //list to convert
102
+ BOOL8 flatten //flatten outline structure
103
+ );
104
+ EDGEPT *make_tess_edgepts( //make tess edgepts
105
+ POLYPT_LIST *edgeptlist, //list to convert
106
+ TPOINT &tl, //bounding box
107
+ TPOINT &br);
108
+ #endif