tesseract 是一个开源的文字检测工具,但是其语言包具有一定的共性,所以针对一些特定的情景并不能很好的满足需要所有此时就需要进行二次训练,针对该方式的训练字体使用的工具为jTessBoxEditorFX-2.0.1.zip,其训练过程如下:
1. 打开jTessBoxEditor。然后点tools->Merge TIFF,生成对应的文件并保存
2. 执行 tesseract chi_my.train.tif chi_my.train -l chi_sim batch.nochop makebox 该操作是为了生成对应的初选框,即以某个语言为基础进行修正。
3. 打开生成的box进行校正:
4. 执行tesseract chi_my.01.exp3.tif chi_my.01.exp3 nobatch box.train
5. 执行unicharset_extractor chi_my.01.exp3.box
6.执行echo chi_my 0 0 0 0 0’ > font_properties
# shapeclustering -F font_properties -U unicharset chi_my.01.exp3.tr
7.执行mftraining -F font_properties -U unicharset -O l chi_my.01.exp3.tr
8. 执行cntraining chi_my.01.exp3.tr
重命名[inttemp、pffmtable、normproto、shapetable]
命名格式为前面加上[lang]
9. combine_tessdata chi_my
文章浏览阅读102次。给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。class Solution(object): def merge(self, nums1, m, nums2, n): """ :type nums1: List[in_两个有序数组合并 leetcode python
文章浏览阅读521次。JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: _java内存划分
文章浏览阅读9.3k次,点赞4次,收藏3次。hibernate报object references an unsaved transient instance - save the transient instance before flushing如此错误解析:1.如果想级联保存对象,但是没有配置级联保存就会报如此错误:比如账户和用户两张表,在保存账户的时候级联保存用户,两个正确配置如下:账户表中关联用户的配置@OneTo_object references an unsaved transient instance - save the transient instanc
文章浏览阅读6.9k次,点赞6次,收藏27次。1.下载Andriod WiFi ADB打开android studio 点击【File】-【Settings】- 【Plugins 】-【Marketplace】搜索并安装关掉重启找到这个文件所在的位置并把它添加到系统变量Path里面右击【此电脑】-【属性】-【系统高级设置】-【环境变量】-【新建系统变量】-在Path下面添加SDK里adb的地址打开cmd一定要以管理员的身份打开之后输入adb如果出现下面这些就已经安装好了2.连接手机把手机打开开发者模式,用USB连接手机和_android连接荣耀手机
文章浏览阅读1.1w次,点赞4次,收藏15次。#include<iostream>#include<algorithm>using namespace std;struct Data{ int num,ra,ind;}d[10];bool cmpn(Data a,Data b){ return a.num<b.num;}bool cmpi(Data a,Data b){ return a.in..._c语言对数组a中的n个整数从小到大进行编号,输出各元素的编号,要求不改变原数组的
文章浏览阅读6.3k次,点赞8次,收藏49次。GM30代码架构 \android\kernel-4.4\drivers\power\mediatek\Makefile 电量计3.0需要定义宏CONFIG_MTK_GAUGE_VERSION为30,之后代码全部编译 battery和charger两个目录下的文件,跟原来的电量计1.0和2.0文件不一样了. 其中\android\kernel-4.4\drivers\power..._charger_device_register
文章浏览阅读4.1k次。一、使用python导入的原因1、csv文件为从文件数据库导出的数据文件,一个一个的导入到数据库效率就比较低下;2、日期形式的字段会存在特殊的字符或者字段中包含了单引号就会报错。二、操作1、循环读取选定文件夹下的文件''' 读取文件夹下的csv文件'''def readAllFiles(filePath): fileList = os.listdir(filePath) for file in fileList: path = os.path.join(_python循环一个文件中的每个csv,并进行数据处理
文章浏览阅读1.5k次。购物车页面1.0 创建购物车页面的编译模式打开微信开发者工具,点击工具栏上的“编译模式”下拉菜单,选择“添加编译模式”:勾选“启动页面的路径”之后,点击“确定”按钮,新增购物车页面的编译模式:1.1 商品列表区域1.11 渲染购物车商品列表的标题区域定义如下的 UI 结构:<!-- 购物车商品列表的标题区域 --><view class="cart-title"> <!-- 左侧的图标 --> <uni-icons type="sho_uni-number-box 宽度
文章浏览阅读2.6w次,点赞11次,收藏58次。本文介绍了 ESP32 以太网和 WiFi 互转的实现。开始描述了基本环境搭建以及需要用到的 DHCP Server,接下来重点描述了 ESP32 作为 STATION ,实现了类似无线网卡的功能,即以太网转WiFi 的功能,然后描述了 ESP32 作为 SOFTAP,实现了类似小型局域网的功能,最后我们对相关核心代码进行分析并做了简单性能分析,供读者参考。_esp32以太网转wifi
文章浏览阅读1.6k次。云MES源码MES源码开源版本提供技术支持JAVA BS架构、SpringMVC、后台是PostgreSQL,支持集群部署,提供商业版本技术支持服务。联系QQ:95404378_git开源mes
文章浏览阅读3.1k次,点赞2次,收藏12次。[人工智能] 第3章 基于谓词逻辑的知识表示与机器推理技术3.2 谓词逻辑简介3.2.1 基于命题逻辑的知识表示3.2.2 谓词逻辑3.2.3 基于谓词逻辑的知识表示3.3 自然演绎推理3.2 谓词逻辑简介3.2.1 基于命题逻辑的知识表示用大写字母来表示命题特定命题----命题常量抽象命题(含未知参数x)----命题变量从符号上无法表达不同对象的相同特征 >> 发展了谓词逻辑3.2.2 谓词逻辑谓词形如P(x1,x2,…,xn)命题函数:谓词公式如果一个谓词公式中所有的个体_消去存在量词的两种情况
文章浏览阅读2.5k次。拦截器最近要写一个对于每个接口请求提前做下乱码检测,这个时候因为项目中的接口特别多,这个时候想到要写一个拦截器,在写拦截器的时候遇到了一些问题记录一下:1.spring boot 2.0+后的版本因为拦截器的WebMvcConfigurerAdapter这个抽象类已经废弃,导致不适用,不起效果了2.换成WebMvcConfigurer后,每次请求,在打印日志的时候发现preHandle总是在Controller处理之前执行一次和在Controller后又执行了一次。自定义拦截器的实现1.定义一个自_拦截器执行两次