使用 python 从图像中获取字符

Get character out of image with python

我想用 python 检测图像中的字符:

在这种情况下,代码应该 return 结果“6010001”。

如何从这张图片中得到结果?我需要什么?

供您参考,如果解决方案是 AI 解决方案,则大约有 20.000 个标记图像。

谢谢转发:)

问:图片都是性质相似的吗? 意思是数字被印成类似的 material,或者它们是用不同技术(例如钢笔绘制、印章等)的随机图片?

如果它们都非常相似(与示例图片中的对比很好),我会建议编写您的“自己的”AI,否则使用现有的神经网络/库(因为我假设您可能想避免痛苦创建自己的神经网络 - 并标记大量图片)。

如果他们的照片非常“相似”,请遵循建议的方法:

    1. 增加对比度的灰度图像
    1. 定义框(大于数字),扫描图像并计算 0s,通过试验有效范围定义以检测数字,避免重叠
    1. 每个命中区域,将其分成扇区,例如6x4,计数 0
    1. 为 0-9 的每个数字(例如字符串)建立每个扇区计数的小知识库(csv 文件);您最终会在数据库中得到每个数字都有多个有效字符串,只需确保它们是唯一的(否则重新定义步骤 1-3)

另外我建议自己做一个智能知识库,意思是:如果数字无法识别,保存数字图片和结果。然后给自己做一个小复习程序,它会向你显示未定义的数字和结果字符串,然后你可以手动将它们添加到你的知识数据库中以获取相应的数字。

希望对您有所帮助。我用同样的方法从屏幕图片中读取了很多不同的数据并将它们存储在数据库中。奇迹般有效。 #最好自己做,而不是使用标准神经网络 :)

您可以使用 opencv-pythonpytesseract

import cv2
import pytesseract


img = cv2.imread('img3.jpeg')
text = pytesseract.image_to_string(img)
print(text)

它不适用于所有带文字的图像,但适用于大多数图像。