裁剪Tessdata

一个项目只需要tesseract traineddata 中的数字部分。

实现过程简单说就是解包,去掉多余,再打包。利用了tesseract的dawg2wordlist  /  wordlist2dawg 和 combine_tessdata 这三个命令。

首先解包:

这里需要用到Tesseract安装包,而不是源码。在Tesseact-OCR文件夹下运行

combine_tessdata -u tessdata/eng.traineddata d:/temp/eng.

得到一堆零件:

看到最大的那个eng.bigram-dawg文件。用下面命令解析成看得清的文本文档:

dawg2wordlist d:/tempeng.unicharset d:/temp/eng.bigram-dawg d:/temp/bigram-wordlist

看到文件里是这样的东西:

I F
I Found
I Foundations
I For
I Forgot
I Forget
I Fig
I Figure
I First
I Fine
I Find
I FIND
I FINALLY
I From
I Fucked
I Family
I Fall
I FOUND
I Feel
I Feed
I Fell

原来是一些可能的文字组合,怪不得这么大。

检查了一下里面根本没有数字。把这个文件删除,我们自己来做一个。

新建一个mywordlist文本文件,里面只写一行(全空无法生成):

1234567890 1234567890

用下面命令生成dawg文件

wordlist2dawg d:/temp/mywordlist d:/temp/eng.bigram-dawg d:/temp/eng.unicharset

再用下面命令生成eng.traineddata文件,原文件会被覆盖。

combine_tessdata d:/temp/eng.

看一下,只有3M多一点了。

放手机上试一下,能用。

时间: 2024-10-07 00:14:10

裁剪Tessdata的相关文章

jQuery插件ImgAreaSelect 实例讲解一(头像上传预览和裁剪功能)

上一节随笔中,我们已经知道了关于jQuery插件ImgAreaSelect基本的知识:那么现在看一下实例: 首先,要知道我们应该实现什么功能? (1)图片能够实现上传预览功能 (2)拖拽裁剪图片,使其能够显示裁剪后的区域 (3)显示要裁剪区域的坐标 其次,该如何引用该插件呢? 那就具体看一下吧! 第一步:先将样式和文件包引入(根据你自己的位置引入) <!--引入imgareaselect的css样式--> <link rel="stylesheet" type=&qu

图片裁剪

图片裁剪代码: -(UIImage*)getSubImage:(UIImage*)image rect:(CGRect)rect { CGRect newrect = CGRectMake(0, 0, rect.size.width*2, rect.size.height*2); CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, newrect); UIGraphicsBeginImageContext(re

AGG第二十六课 裁剪功能

AGG有四种类型的裁剪,分别工作在不同的层次 1. 基础渲染器Base Render 除非直接调用基础渲染器的绘制线段的方法,否则在一般情况下,都是在render_scanline的时候被调用,进行裁剪,这个时候已经进行了大量无用的工作.比如顶点源超出屏幕范围,在调用render_scanline函数之前,比如调用rasterizer对象的add_path函数,已经浪费大量的资源 2 光栅器rasterizer rasterizer主要应用于根据顶点源,生成线段的详细信息,这个时候调用裁剪,可以

linux4.10.8 内核移植(三)---裁剪内核

一.裁剪内核 1.1 第一次修改 现在的内核大小为2.8M左右,要裁剪到2.0M以下,毕竟给内核分区就只有2.0M. 这两个设备我们没有,裁剪掉. 进入make menuconfig中,搜索mousedev: 进入里面按需要进行裁剪. 搜索 lp: hostname修改: 文件系统再此修改: 去掉如下选项: 再次进入device driver,->input device->touch creen 配置上 去掉: 修改完后,保存.然后编译执行,查看uImage的大小 裁剪出来的大小为2.66M

[计算机图形学 with OpenGL] Chapter8 习题8.12 NLN二维线段裁剪算法实现

Nicholl-Lee-Nicholl二维线段裁剪算法相对于Cohen-Sutherland和Liang-Barsky算法来说,在求交点之前进行了线段端点相对于几个区域的判断,可以确切的知道要求交点的边的信息. 此方法只在二维空间裁剪时使用,C-S和L-B裁剪方法则可应用到三维空间. 算法步骤: 1 先使用C-S裁剪算法的区域码判断方法,去除一部分在裁剪区域外面的线段.显示在完全在裁剪区域内的线段.其他不能判断的情况,采用NLN算法进行裁剪. 2 p1和p2若有一点在区域内,必要时交换端点以确保

怎样实现前端裁剪上传图片功能

由于前端是不能直接操作本地文件的,要么通过<input type="file">用户点击选择文件或者拖拽的方式,要么使用flash等第三方的控件,但flash日渐衰落,所以使用flash还是不提倡的.同时html5崛起,提供了很多的api操控,可以在前端使用原生的api实现图片的处理,这样可以减少后端服务器的压力,同时对用户也是友好的. (笔者的个人站:http://yincheng.site/crop-upload-photo手机端的读者推荐在这里看) 最后的效果如下:

SVG.js Mask覆盖和ClipPath裁剪

一.SVG.Mask 覆盖物设置 1. var draw = SVG('svg1').size(300, 300); //SVG.Mask 覆盖物设置 var ellipse = draw.ellipse(80, 40).move(10, 10).fill('#fff'); var mask = draw.mask().add(ellipse); //添加到矩形 maskWith() var rect = draw.rect(100, 100); rect.maskWith(mask); //获

裁剪插件jCrop

为大家介绍个插件:jCrop.这个插件被我用在了多个项目中,如通过画热力图来查看某块地方用户的浏览数,放大缩小拖动选框来实时预览所选区域的图片病裁剪,设置头像是选框必须要是正方形,它有着丰富的配置参数和回调函数. 其常用的参数和回调方法在网上都可以找到,例如是否允许拖放,是否允许新选框,选框允许的大小.颜色.边界,禁用选框.销毁选框.重新调用选框等,使用起来非常方便. 使用方法是: 1.载入css <link rel="stylesheet" href="jquery.

linux命令:系统裁剪之一grub引导

Linux系统裁剪笔记 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统,从而达到系统缩减,订制特殊系统. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR(grub)-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的g