【问题标题】:OCR library to read text from images(preferably python)从图像中读取文本的 OCR 库(最好是 python)
【发布时间】:2014-05-06 11:48:23
【问题描述】:

我需要从一些图像中读取文本,图像清晰且噪音非常低。 所以我最初的想法是获取文本应该很容易。 (我知道的很少)

我测试了一些 python 库但没有取得多大成功 (pytesser) ,他们可能会得到 10% 的正确率。 我求助于Googles tesseract-occ,但还差得很远。

这是一个例子:

结果如下:

nemnamons

Ill
w_on

lhggerllo
' 59
' as

\M_P2ma\

vuu uu

Cafllode omer
Mom | Dyna
Mom | Dyna

lnggerllo



2vMnne= Tr2rspnn| Factory (Hexmy;

lalgeflll Uxzlconflg
w_o«
w_o«

cammem

我做错了什么?还是 OCR 识别真的这么差?

【问题讨论】:

  • 我相信您需要在 OCR 之前处理(裁剪?)您的图像。它将无法直接从表中获取数据。如果您裁剪或删除表格边框,那么您可以获得一些不错的输出。同样根据我的经验,您可以调整图像的大小以获得更好的效果。
  • @ChrisAung,这是真实的图片。我需要自动执行此操作,因此我无法修改每张图片并删除边框等等...
  • 此链接可能会有所帮助stackoverflow.com/questions/6173439/…

标签: python ocr tesseract text-recognition


【解决方案1】:

您需要对图像进行预处理,例如去除噪点,以获得更好的效果。稍后,您可以使用诸如pytesseract 之类的库来从图像中获取文本:

def get_string(img_path):
    img = cv2.imread(img_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # Remove some noise
    kernel = np.ones((1, 1), np.uint8)
    img = cv2.dilate(img, kernel, iterations=1)
    img = cv2.erode(img, kernel, iterations=1)
    cv2.imwrite("removed_noise.png", img)    

    # Recognize text with tesseract for python
    result = pytesseract.image_to_string(Image.open("removed_noise.png"))

    return result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    相关资源
    最近更新 更多