python - 识别文件检测和 ocr 中的模糊文本

标签 python opencv tensorflow text ocr

我有一个非常具体的场景文本检测和解析问题。我什至不确定你是否可以说这是一个真实的场景文本

我从一张身份证照片中提取了一个姓名字段: enter image description here

我可以立即开始对该图像应用一些 OCR,但我相信可以应用进一步的文本本地化。要实现此图像:enter image description here 你知道任何这样的文本本地化算法吗?我已经尝试过“Busta 的 FASText”、“argman 的 EAST”,它们运行良好。关于这个特定任务的任何算法?

在文本本地化之后,我认为现在是应用 OCR 的最佳时机。现在我感到迷茫。 您可以推荐使用哪种 OCR?我已经尝试过“Tesseract”,但效果不佳。通过使用例如为文档字符制作自己的 OCR 是更好的主意吗? tensorflow ?

最佳答案

尝试增加图像的对比度。您可以使用:

import matplotlib.pyplot as plt
import cv2
import numpy as np


def cvt_BGR2RGB(img):
  return cv2.cvtColor(img,cv2.COLOR_BGR2RGB)


def contrast(img,show=False):
  # CLAHE (Contrast Limited Adaptive Histogram Equalization)
  clahe=cv2.createCLAHE(clipLimit=3., tileGridSize=(8,8))

  lab=cv2.cvtColor(img, cv2.COLOR_BGR2LAB)  # convert from BGR to LAB color space
  l,a,b=cv2.split(lab)  # split on 3 different channels

  l2=clahe.apply(l)  # apply CLAHE to the L-channel

  lab=cv2.merge((l2,a,b))  # merge channels
  img2=cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)  # convert from LAB to BGR
  if show:
    #plot the original and contrasted image
    f=plt.figure(figsize=(15,15))
    ax1=f.add_subplot(121)
    img1_cvt=cvt_BGR2RGB(img)
    plt.imshow(img1_cvt)
    ax2=f.add_subplot(122)
    img2_cvt=cvt_BGR2RGB(img2)
    plt.imshow(img2_cvt)
    plt.show()
  return img,img2

然后也许你可以使用 pyteserract

关于python - 识别文件检测和 ocr 中的模糊文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565610/

相关文章:

python - Pandas (Python) 阅读和处理 Java BigInteger/大数

c++ - 从用户数据创建 OpenCV Mat 会产生具有圆形移位列的图像

python - 从 Tensorflow 中的自定义图像数据集创建批处理

android - 如何在 Android 平台上使用 TensorFlow?

python - 在 python 脚本上使用 pyinstaller 会导致巨大的文件大小

python - 使用 python strftime() 识别文本文件中月份和日期没有零填充的日期值

python - 为什么双分号是 Python 中的 SyntaxError?

javascript - 如何使用 brython 使用 OpenCV python 库

C++ OpenCV : Convert vector<vector<Point>> to vector<vector<Point2f>>

python - Keras:无法在我的模型中使用自定义损失函数