当前位置: 首页 > 知识库问答 >
问题:

如何在Tesseract C#中只捕获数字

聂和宜
2023-03-14

我正在使用一个控制台应用程序和非常基本的Tesseract来执行数字识别。我从谷歌复制了一个图像,试图找到数字只。

Bitmap image = new Bitmap("1.png");
TesseractEngine t = new TesseractEngine("./tessdata", "eng", EngineMode.Default);
t.SetVariable("tessedit_char_whitelist", "01234567890");
var r = t.Process(image, PageSegMode.SingleBlock);
Console.WriteLine("Result: " + r.GetText());
Console.ReadLine();

共有1个答案

濮波
2023-03-14

Tesseract不能很好地处理这样的图像,除非你专门针对这种情况训练它,但我认为如果你能正确地转换图像,你就不必这样做了

你的目标应该是给它一个黑白的图片,黑色数字和白色背景,你应该在Ocing图像之前做这个处理,有很多库对此,大多数人使用OpenCV。

Tesseract已经做了一些图像处理,但它不是很好,可能对这样的图像没有太大帮助。您可以使用tessedit_write_images查看自动处理的结果,以查看实际显示的内容。

以下是一些有用的链接:

https://github.com/tesseract-ocr/tesseract/wiki/impromequality#图像处理

 类似资料:
  • 问题内容: 我正在研究启动多个进程和数据库连接的python脚本。我不时地想用信号杀死脚本,我想进行一些清理。 在Perl中,我可以这样做: 如何在Python中做类似的事情? 问题答案: 用以下方式注册你的处理程序: 代码改编自此处。

  • 问题内容: 发现在Java 1.6(以及从Eclipse)上运行时,吞没了该方法中的异常之后,我试图找到一种捕获这些异常的方法,而不会在我的所有实现中都添加throw / catch 。 该API建议覆盖应对此有所帮助: 导致此future报告一个ExecutionException,并以给定throwable作为其原因,除非已经设置或取消了此Future。计算失败时,run方法在内部调用此方法。

  • 问题内容: 不久前,我正在寻找Java中的可嵌入的分布式版本控制系统,我想我已经在JGit中找到了它,它是git的纯Java实现。但是,示例代码或教程的方式并不多。 如何使用JGit检索某个文件的HEAD版本(就像或应该做)? 我想这涉及一些rev-tree-walking,并且正在寻找代码示例。 问题答案: 不幸的是,Thilo的答案不适用于最新的JGit API。这是我找到的解决方案: 我希望

  • 问题内容: 我有一个Swing应用程序,即使我在/中都包含了所有内容,也没有捕获到异常。 我得到的只是这个堆栈跟踪: 问题答案: 正如另一位发布者所提到的,您的问题是该异常正在另一个线程(事件调度线程)中引发。几个解决方案: 在发生异常的实际代码周围进行尝试/捕获:例如,如果它是对ActionListener处理的按钮单击的响应,则将try / catch放入actionPerformed()方法

  • 问题内容: 我的JSP页面中有一个复选框,它接受整数值: 如果用户将输入的值更改为一个值,例如: 该页面将引发一个。如何在控制器中捕获并显示有意义的消息? 问题答案: 您可以使用JSTL的 c:catch 标签:

  • 问题内容: 所有四个箭头键(左上右下)的utf8代码是什么? 我正在学习node.js,并且试图检测何时按下了这些键。 这是我的工作,但是没有一个能捕获箭头键…我是node.js的新手,所以我在这里可能做得很愚蠢。 谢谢。 问题答案: 您可以使用按键包。尝试页面上给出的示例。 您可以按顺序获取箭头键的UTF-8值。