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

限制镶嵌的预处理

范建华
2023-03-14

我是tesseract库的新手,我在Ubuntu 12.04上设置了它。

我就是用这个数据集来被认可的。当我使用这段代码将这些图像原样(没有任何预处理)提供给tesseract时,我得到了大约70-75%的图像。准确性。

我希望准确度达到90%,所以我做了一些预处理步骤来增强图像

预处理步骤

  1. 应用底帽运算符,具有半径为 12 的圆的结构化元素
  2. 补充图像以使背景变为白色,文本变为黑色
  3. 增强所得图像的对比度
  4. 侵蚀形象。

经过这些步骤,我得到了非常清晰的图像,可以在这里看到。但是现在,当我使用相同的代码将这些图像提供给tessearct时,准确性会降低到

共有2个答案

汪博艺
2023-03-14

好吧,我在预处理后将灰度(8bpp)图像提供给镶嵌,因此在获得灰度图像后,镶嵌试图将其二值化,即将其转换为黑白,这给了我不好的结果,我仍然不知道为什么。

但在那之后,我尝试先将我的比例图像转换成黑白或1bpp图像,然后将该图像输入到< code>tesseract中,我得到了相对更好的结果。

太叔繁
2023-03-14

关于您的问题,当使用二进制图像而不是灰度图像作为tesseract的输入时,tesseract为什么会提供更好的结果:

Tesseract将使用各种方法对灰度图像进行内部二值化(还没有想出正确的二值化方法,有些时候是局部自适应阈值,有些时候是互联网上提到的全局OTSU阈值)。可以肯定的是,tesseract在二进制图像上执行字符识别,并且tesseract的预处理在特定问题上仍然会失败(例如,没有很好的布局分析)。因此,如果您自己做预处理部分,只给tesseract一个带文本的二进制图像作为输入图像,并禁用tesseract中的所有布局分析,您可能会获得比让tesseract为您做所有事情更好的结果。因为它是一个开源的免费工具,它有一些已知的缺点,这是必须接受的。

如果您使用tesseract作为命令行工具,这个线程对参数非常有用。tesseract命令行页面分割

如果您在开发自己的C代码时使用tesseract的源代码,您必须用正确的参数初始化tesseract。参数在tesseract API端描述。tesseract API

 类似资料:
  • 自从ggplot2.2.2更新之后,这个主题似乎就没有涵盖,像这样的旧解决方案和这个解决方案不再适用。幸运的是,这个过程比以前简单得多。一行代码,你有一个次要的Y轴(如图所示)。 但是我不能在我的地块上得到第二个X轴... 我正在比较沉积物核心沿线金属浓度的深度剖面。我想将碳和磷酸盐浓度显示为金属浓度后面的一个几何区域。问题是碳和磷酸盐的浓度与金属不在同一范围内。因此,我需要第二个轴。 主题如下(

  • 我试图建立一个长达10年的时间序列的ARIMA模型,并用它来预测未来一年。为了测试我的模型,我在9年的数据上进行训练,预测1年的数据,并将预测值与当年的实际值进行比较。 问题:我告诉预测()将其预测的期限限制为365年,即1年。但是当我绘制输出时,它似乎输出9年或大约3285的“h=”。为什么会发生这种情况? 更新:罗布·海曼下面的答案是正确的。预测周期的数量将被设置为xreg的行数,因为当使用x

  • WebGL着色器语言和C语言一样提供了一些用于预处理的命令#define、#include、#if等以#号开头的命令。 宏定义#define 注意宏定义和着色器声明的变量不同,着色器程序执行前需要进行编译处理,着色器程序编译处理之后程序才会在GPU上执行,宏定义主要是在编译处理阶段起作用。比如宏定义#define PI 3.14,PI符号表示圆周率3.14,如果在代码return float f

  • 在Webpack中,所有预处理器都需要应用相应的加载器。 vue-loader允许你使用其他Webpack加载器处理Vue组件的一部分。它将从语言块的lang属性自动推断出要使用的正确加载器。 CSS 例如,让我们用SASS编译我们的<style>标签: npm install sass-loader node-sass --save-dev <style lang="sass"> /* 在

  • 我有一个很长的文本要保存到这个字段中。超过65535KB。当我通过PHP保存它时,MySQL将其剪切为65535,并且不会保存所有内容。我如何解决这个问题?

  • 有什么办法解决这个问题吗?