无法从图像中获取文本

unable to get text from the image

我正在学习 AI/ML 并尝试从此示例表单中获取文本。

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r'C:\Users\Pranav\AppData\Local\Programs\Tesseract-OCR\tesseract.exe'

image = cv2.imread('image2.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (3,3), 0)

x,y,w,h = 393, 531, 837, 80
firstROI = blur[y:y+h,x:x+w]
firstname = pytesseract.image_to_string(firstROI, lang='eng', config='--psm 6')
print(firstname)
firstname = re.sub(r'[^\w]', '', firstname)

cv2.imshow('image', firstROI)
cv2.waitKey()
cv2.destroyAllWindows()

使用上面的代码,我可以在白色背景中获取正常打印文本的文本,但无法从灰色背景框中获取文本。例如,名字框的实际值为“Andrew”,但我只得到“oe”。

firstROI 显示如下:

根据 Freddy 的评论,我检查了这个 link 并更新了以下代码,但仍然没有输出。

from tesserocr import PyTessBaseAPI, PSM, OEM
api = PyTessBaseAPI(psm=PSM.AUTO_OSD, lang='eng', path=r'C:\Users\Pranav\tessdata-master')
images = ['andrew1.png', 'andrew2.png', 'test1.png']

for img in images:
    api.SetImageFile(img)
    print (api.GetUTF8Text())
    print (api.AllWordConfidences())

这些是示例图片

它只能读取第三张图片(人口统计)的文本输出。请帮助我如何从灰色背景图像中读取文本(Andrew)。

为我提供了答案。它去除了背景图像中的噪声。