- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 tesseract 来识别序列号。这工作可接受,常见问题如错误识别零和“O”,6 和 5,或 M 和 H 存在。除了这个 tesseract 之外,还为识别出的单词添加了空格,而图像中没有空格。下图被识别为"HI 3H"。
此图像生成“FBKHJ 1R1”
所以 tesseract 添加了一个空格,尽管图像中并没有真正的空格。是否有可能参数化 tesseract 的间距行为?
编辑
对不起,忘了补充,我也有包含空格的序列号。所以我无法删除识别序列号内的所有空格。
例如下图序列号中有空格,tesseract识别后结果为:J4 F1583BB。除了对字符的识别是错误的之外,这个图像的空间识别是正确的。
我的 tesseract 实际参数是:
tesseract::TessBaseAPI tess;
tess.Init(NULL, "eng", tesseract::OEM_TESSERACT_ONLY);
tess.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK);
tess.SetVariable("tessedit_char_whitelist",
"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345789");
char* out = tess.GetUTF8Text();
string text = string(out);
编辑
从现有答案中可以看出,例如“J”和“I”之间的空格似乎比其他字符之间的空格多一点。我选择的字体类型是 Monotype 字体。这样做的原因是我认为,这有助于 tesseract 进行字符识别。这种每个字符都具有相同宽度的 Monospace 字体类型的缺点是内核(字符之间的空间)不同。请参阅以下来源的示例图像 Source
您认为哪种字体类型的识别效果会更好?
最佳答案
调整参数 tosp_min_sane_kn_sp
可能会有帮助。我通过这样做解决了问题。
如果没有帮助,您可以尝试其他tosp_*
参数,或者绕过空间源代码“tospace.cpp”
关于c++ - Tesseract 虚假空间识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072452/
我试图弄清楚接受 OpenID 登录的网站如何无法通过简单的主机文件更新来指向伪造的 OpenID 提供商。 假设我想侵入 Joe Smith 的帐户,在这个例子中,假设他的 OpenID 提供商是
#include #include #include #include #include #include #include #include #include #include #define P
根据此讨论 - "RESTful API - Correct behavior when spurious/not requested parameters are passed in the req
如果编译为 Cand C++ 源代码,这个简单的代码片段会使用 g++ 4.7.0 生成“函数调用中缺少标记”警告。我相信这是编译器的错误,因为最终的 NULL值(value)就在那里。 #inclu
我读到,有时 && 运算符用于“短路”JavaScript,使其相信返回值 0 是 0 而不是 NaN,因为 0 在 JavaScript 中是一个虚假数字。我一直在四处寻找,想弄清楚这一切意味着什么
我正在使用 Borland(又名“Embarcodegearland”)C++Builder 2007 编译器,它有一个小错误,系统头文件中的某些 static const 项可能导致虚假的 "xyz
我是一名优秀的程序员,十分优秀!