使用python和opencv对图像进行OCR

时间:2018-01-10 18:29:01

标签: python opencv ocr

我是计算机视觉,图像处理和OCR的新手。作为任务的一部分,我需要对附加的电子邮件执行OCR。然而,问题是ROI在所有图像中都不是恒定的。例如,在所有图像中,我们需要提取与患者Yadav相关的信息。

这需要在Python和OpenCV中实现。请帮忙。我已经尝试过以下方法:

  1. 更改DPI
  2. 灰度
  3. 二值化
  4. 但是,面临布局或区域分析的问题。
  5. 感谢您的帮助。

    image 1

    image 2

1 个答案:

答案 0 :(得分:1)

欢迎来到计算机视觉世界。

我认为你不能很好地理解你的问题。只是尝试一下并检查它是否有效将无法工作。

首先阅读tesseract(OCR引擎)如何提高https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

的准确度

好的,那么是什么让OCR无法处理您的数据。正如您所看到的,您的数据很干净,并且几乎没有噪音。因此,打印电子邮件的边框(在您的问题中为“ROI”)没有正确排列。

enter image description here

我们可以正确地使ROI排队。我们可以使用一些透视变换。我从https://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspective-transform-example/

中抽取了一个例子

enter image description here

那么我们如何进行透视转换呢?我们必须找到ROI的4个角并将其移回图像的角落。要查找ROI的4个角,您可以找到一些轮廓。

所以这里是摘要,这是步骤。

1. Find the ROI (white color) using color segmentation
2. Find the contour which cover the ROI
3. Find 4 corners of the ROI's contour
4. Apply perspective transform
5. Run tesseract on transformed image

希望有帮助