Tess4J for Java

近期因工作安排,开始接触OCR。在macOS环境下使用Tess4J这个OCR库时,踩了很多坑。

需记录下来


Tess4J简介

Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。而Tess4J则是Tesseract在Java PC上的应用。在英文和数字识别中性能还是不错的。

因为 tess4j.jar 中没有包含涉及到macOS的库,所以在项目中导入前,需要提前做一些配置。笔者没有试过在Windows或者Linux环境下使用Tess4J,所以暂时不知道其他系统上是否需要做相同的配置。

macOS的本地配置

首先需要通过 homebrew 安装 Tesseract 引擎。

More

海外网易云

此教程仅针对海外windows用户,若用于商业用途,一切与本文无关。

第一步,安装代理

管理员身份 打开 Powershell,Windows 10 快捷入口:Win + X - Windows Powershell(管理员)(A)

More

LeetCode刷题记录-Part3

本篇是该系列第三篇,第一篇第二篇的链接在此。本篇将介绍Trie Tree 和 Union Find。两者都是很常见的树状数据结构。

这篇应该是LeetCode刷题系列的最后一篇,本来还打算包含 segment tree 和 topological sort 的介绍,但是后来发现这两个部分的题目数量是真的少,没必要写出来。至于之前还计划整理一篇位运算的相关操作,但是想了想这东西在工作中的实际运用,也被删除了。

接下来估计会开 system design 系列。这东西在北美找全职也是要准备的,之前还自以为刷题什么的就可以了。

More

从代码角度分析动森大头菜价格走势

首先感谢进行解包的大佬Ninji。本文只是对解包代码进行粗略的解读并加以分析。

解包代码大体可分为三个阶段,分别是随机数生成阶段、价格预测阶段和价格计算阶段。

随机数生成阶段–梅森旋转算法

梅森旋转算法,Mersenne twister,简写为MT。在C++11中的随机数库中,有一个随机数生成引擎函数 std::mt19937,这里的mt就是梅森旋转算法的简写。

More

LeetCode刷题记录-Part2

本篇是该系列第二篇,第一篇地址见此。本篇还是数组篇,主要介绍各种常见算法的灵活使用,具体为桶排序、环检测算法、单调栈和BFS,并主要针对排序和查找类题目。

这个系列的上一篇是近两个月前写的,这篇的构思在上个月就已经想好了,但是一直拖到现在才开始动笔,实在不该。但是在我重新梳理本篇的结构时,重新审视了之前刷题的代码,发现人终归是会遗忘的,有些题的思路已经忘记了。所以这里笔者提醒正在刷题的各位,一定要养成定期温习之前刷的题目,这里并不是指重新敲一遍,而是在脑海中过一遍题目的解题思路和实现逻辑。

至于怎么温习,我给出两个建议。

More

HashCode 2020

Hash Code 是由Google举办,并且每一年举办一次的大型编程比赛。今年的比赛官网

关于最终比赛结果,在一共10724份提交代码的小组中,我们最终积分是两千四百多万分,具体排名为2100名。感谢小组内所有大佬的付出,让我们4个小时的努力有所回报。

今年的比赛题目和数据集见此。该仓库包含今年的练习题目与正式题目。此篇文章主要陈述正式比赛题目中的数据集b和d的解法。

至于为什么只写这两个数据集的解法,因为是我写的。但是关于d的算法在数据集d上的实现并不好,然而在f上的实现超出预期。

More