繁体   English   中英

使用 Python/OpenCV/Tesseract 从图像中提取数据?

[英]Extract Data from an Image with Python/OpenCV/Tesseract?

我正在尝试从裁剪的图像中提取一些内容。 我试过pytesseract和opencv模板匹配但是结果很差。 OpenCV 模板匹配有时会由于图标质量差而失败,而 tesseract 给了我一行带有错误字符的文本。

我正在尝试获取这样的值:

0:26 83 1 1

有什么想法或技巧吗?

在此处输入图像描述

您可以使用的一种技术是模糊您的图像。 从它的外观来看,图像已经有点低分辨率和模糊,所以你不需要非常努力地模糊图像。 每当我需要在 Opencv 中使用模糊 function 时,我通常会选择高斯模糊,因为它模糊每个像素以及每个周围像素的技术都很棒。 一旦图像模糊,我将对图像进行阈值或自适应阈值。 一旦你走到这一步,应该显示的图像应该主要是硬线,中间夹杂着少量的短线。 然后,将阈值图像扩大到足以连接有很多硬边缘的位。 执行扩张后,找到该图像的轮廓,并根据它们与图像的高度进行排序。 由于我假设这些数字的 position 不会改变,因此您只需根据图像的高度对轮廓进行排序。 之后,一旦你对轮廓进行了排序,只需在它们上面创建边界框,然后从那里读取文本。

但是,如果您想以快速而肮脏的方式执行此操作,则始终可以在要阅读的每个区域周围手动创建自己的 ROI 并以这种方式进行。

第一种方法

  1. 高斯模糊图像
  2. 阈值图像
  3. 放大图像
  4. 查找轮廓
  5. 根据高度对等高线进行排序
  6. 在相关轮廓周围创建边界框

第二种方法

  1. 在要从中读取文本的区域周围手动创建 ROI

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM