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

刻印在金属板上文字的OCR

洪光霁
2023-03-14

我正在做一个OCR项目,其目标是读取金属板上的打印序列号:

我使用OpenCV为OCR准备图像,并使用Tesseract为OCR本身。这是理想的过程:

  1. 在整个盘子的图片中,裁剪到序列号的大致位置。
  2. 为OCR准备裁剪后的图像。
  3. 应用OCR。

我当前的流程是:

  1. 手动裁剪序列号。
  2. 转换为灰度。
  3. 锐化。
  4. 使用Canny边缘检测。
  5. 运行Tesseract ocr.

然而,我的成功非常有限。我的主要问题是:

    null

共有1个答案

晋天逸
2023-03-14

我觉得这不是完全的解决办法,但可以帮助-

我一直在研究一个类似的场景,我想从浮雕金属中提取文本。

我的方法和你的方法相似-

    null

我注意到当文本颜色为黑色,背景颜色为白色时,Tesseract的工作效果更好。(所以,我正在做第7步)

您可以在这里看到我工作的代码和结果--https://github.com/devashishprasad/embossed-text-reader

而且我还要提一下,这一切都取决于canny和你的形象。保持阈值低以查找更多的边缘,保持阈值高以查找更少的边缘。但是,较多的边缘会在图像中引入噪声,较少的边缘则无法检测出完整的数字。所以这一切都取决于精明的阈值和你的图像。

 类似资料:
  • 问题内容: 我在客户端需要一个对象,因此我使用json.marshal将其转换为JSON并将其打印到模板中。该对象将作为转义的JSON字符串输出。 我期望它是,但事实是 我知道我可以在客户端进行JSON.parse,但这是唯一的方法吗? 这是我在模板中打印的方式: 这是我的元帅职能: 问题答案: 在JS上下文中,普通字符串总是被转义。我应该在打印之前将其转换为类型。 参考:http : //gol

  • 我有一个非常特殊的例子,我需要在一个模板文本中使用一个模板文本,但是我做不到。 代码如下所示: 然而,我必须将其包装在函数中,同时保持变量的值,这会导致错误发生。无论我是否逃脱了滴答声。 使用转义滴答,我收到以下错误消息: 错误:预期的某个链接但未提供 没有,我得到: 意外标记,预期“”,” 我该怎么处理这件事? 编辑:可能应该注意的是,中传递的代码将被渲染并且需要使用它。它最终将通过传递给另一个

  • Sometimes you just want to write some text on top of an image. The following examples demonstrate using some of the text functions included with watermark.js. In the interest of saving space, the foll

  • 裸金属服务器是为用户提供的专属物理服务器。 裸金属服务器是为用户提供的专属物理服务器,在物理机注册到云管平台后,用户可通过在物理机上安装操作系统创建裸金属服务器。裸金属服务器独占物理机资源。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/主机/裸金属” 菜单项,进入裸金属页面。 列表右上方将显示裸金属总数以及处于运行、关机、操作失败以及未知状态的裸金属数量。 新建裸金属服务

  • 问题内容: 我要针对日期绘制具有五个数字(210.10、210.25、211.35等)的数字,我希望y轴刻度线显示所有数字(“ 214.20”而不是“ 0.20 + 2.14e2”),但没有能够弄清楚这一点。我试图将ticklabel格式设置为纯格式,但似乎没有效果。 关于我明显失踪的任何提示吗? 问题答案: 您也可以只关闭偏移量:(几乎完全相同的副本,如何删除matplotlib轴上的相对偏移)

  • 我的应用程序获取资源字符串占位符令牌列表,它应该使用给定值更改令牌。 这种资源的一个例子是:“ 。 所以我切换到的其他方法: 这产生了以下功能: 所以现在我能做的是: 但是现在我需要在内部函数中分解 ,以便模板文字知道值 顺便说一句——我已经试过了——没有成功: 问题 如何在内部函数中展平以便将具有已知的本地值? 注意,我不喜欢使用正则表达式解决方案,因为在模板文本中有换行符。此外,这些资源有意采