小编TL-*_*-Py的帖子

python 中的数字识别(OpenCV 和 pytesseract)

我目前正在尝试从小屏幕截图中检测数字。然而,我发现准确性相当差。我一直在使用 OpenCV,图像以 RGB 格式捕获并转换为灰度,然后使用全局值执行阈值处理(我发现自适应效果不太好)。

下面是其中一个数字的灰度示例,后面是阈值保持后的图像示例(数字范围为 1-99)。请注意,图像的初始屏幕截图非常小,因此被放大。

在此输入图像描述

在此输入图像描述

任何有关如何使用 OpenCV 或完全不同的系统提高准确性的建议都非常感谢。下面包含一些代码,该函数传递数字的 RGB 屏幕截图。

def getNumber(image):
    image = cv2.resize(image, (0, 0), fx=3, fy=3)
    img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    thresh, image_bin = cv2.threshold(img, 125, 255, cv2.THRESH_BINARY)

    image_final = PIL.Image.fromarray(image_bin)

    txt = pytesseract.image_to_string(
        image_final, config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789')
    return txt
Run Code Online (Sandbox Code Playgroud)

python ocr opencv machine-learning image-processing

2
推荐指数
1
解决办法
5383
查看次数

标签 统计

image-processing ×1

machine-learning ×1

ocr ×1

opencv ×1

python ×1