【问题标题】:tesseract detects only 4 words from imagetesseract 仅从图像中检测到 4 个单词
【发布时间】:2021-11-13 11:03:00
【问题描述】:

我有非常简单的python代码:

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:\\Tesseract-OCR\\tesseract.exe'
img = cv2.imread('1.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

hImg,wImg,_ = img.shape

#detecting words
boxes = pytesseract.image_to_data(img)
for x,b in enumerate(boxes.splitlines()):
    if x!=0:
        b = b.split()
        if len(b) == 12:
            x,y,w,h = int(b[6]), int(b[7]), int(b[8]), int(b[9])
            cv2.rectangle(img, (x,y), (w+x,h+y), (0,0,255), 3)


cv2.imshow('result', img)
cv2.waitKey(0)

但结果很有趣。它只检测到 4 个单词。可能是什么原因?

【问题讨论】:

    标签: python opencv tesseract python-tesseract opencv-python


    【解决方案1】:

    如果你improve the quality你给Tesseract的图像,你会得到更好的OCR结果。

    虽然 tesseract 版本 3.05(及更早版本)可以毫无问题地处理倒置图像(深色背景和浅色文本),但对于 4.x 版本,使用浅色背景上的深色文本。

    BGR 转换为HLS 以便稍后从图像上半部分的数字中删除背景颜色。然后,使用cv2.inRange 创建一个“蓝色”蒙版,并将任何不是“蓝色”的部分替换为白色。

    hls=cv2.cvtColor(img,cv2.COLOR_BGR2HLS)
    
    # Define lower and upper limits for the number colors.
    blue_lo=np.array([114, 70, 70])
    blue_hi=np.array([154, 225, 225])
    
    # Mask image to only select "blue"
    mask=cv2.inRange(hls,blue_lo,blue_hi)
    
    # copy original image
    img1 = img.copy()
    img1[mask==0]=(255,255,255)
    

    通过将图像转换为黑白来帮助 pytesseract

    这是将图像转换为黑白。 Tesseract 在内部执行此操作(Otsu 算法),但结果可能不是最理想的,尤其是在页面背景暗度不均的情况下。

    rgb = cv2.cvtColor(img1, cv2.COLOR_HLS2RGB)
    gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY)
    _, img1 = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    cv2.imshow('img_to_binary',img1)
    

    在之前创建的img1 上使用image_to_data 并继续应用您现有的代码。

    ...
    hImg,wImg,_ = img.shape
    
    #detecting words
    boxes = pytesseract.image_to_data(img1)
    for x,b in enumerate(boxes.splitlines()):
        ...
    ...
    

    【讨论】:

    • 谢谢。你解决了我的问题
    猜你喜欢
    • 2014-04-21
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多