无法识别数字5

2024-06-01 22:50:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Pytesseract来识别5号的图像,我惊讶地发现,即使应用了各种过滤器,比如GlaussianBlur和Threshold,并应用了膨胀和腐蚀来去除噪声,它仍然无法识别图像。你知道吗

尝试的筛选器:

        1: cv2.threshold(cv2.GaussianBlur(img, (9, 9), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
        2: cv2.threshold(cv2.GaussianBlur(img, (7, 7), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
        3: cv2.threshold(cv2.GaussianBlur(img, (5, 5), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
        4: cv2.threshold(cv2.medianBlur(img, 5), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
        5: cv2.threshold(cv2.medianBlur(img, 3), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
        6: cv2.adaptiveThreshold(cv2.GaussianBlur(img, (5, 5), 0), 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2),
        7: cv2.adaptiveThreshold(cv2.medianBlur(img, 3), 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2),

应用膨胀和腐蚀来消除一些噪音

    kernel = np.ones((1, 1), np.uint8)
    img = cv2.dilate(img, kernel, iterations=1)
    img = cv2.erode(img, kernel, iterations=1)

培训数据:

你知道吗工程培训数据你知道吗

原始图像

enter image description here

不确定这里出了什么问题,我阅读了Tesseract的文档并应用了这里提到的所有预处理步骤。有人能帮我解决问题吗


Tags: 图像imgthresholdnpgaussiancv2kernelbinary
1条回答
网友
1楼 · 发布于 2024-06-01 22:50:03

试试 psm 10

import pytesseract
from PIL import Image
import requests
import io

response = requests.get('https://i.stack.imgur.com/ZcPqGs.jpg')
text = pytesseract.image_to_string(Image.open(io.BytesIO(response.content)), lang='eng',
                config=' psm 10')

print(text)

这将产生5。你知道吗

相关问题 更多 >