【问题标题】:Optical character recognition in an image using Python使用 Python 在图像中进行光学字符识别
【发布时间】:2018-08-13 10:43:02
【问题描述】:

我有an image file,Python 读取它并将其转换为十六进制。这里的问题是,即使我给出一个空的空白图像,它也会给出十六进制数字作为输出。我需要 Python 只处理图像中的字母并将它们转换为十六进制并将其作为输出。

这是我厌倦的程序

import binascii

filename = 'a.png'
with open(filename, 'rb') as f:
    content = f.read()

print(binascii.hexlify(content))

【问题讨论】:

  • 您的程序将为您提供图像文件的十六进制代码。如果您看到一个大小为 100000 字节的图像文件,您将获得 200000 个十六进制数字(每个字节两个)。它与图像上显示的内容无关。没有输出的唯一方法是文件为空(0 长度),并且这样的文件不能说是图像文件。另一方面,如果您想阅读图像上显示的字母,则需要使用 OCR 库(或从机器学习库编写 OCR),而 binascii.hexlify 完全是错误的工作工具。

标签: python image-processing ocr


【解决方案1】:

这是 OCR(Optical Character Recognition) 问题,在堆栈history 中讨论过多次。

Pytesserect 轻松做到这一点。

用法:

import pytesserect
from PIL import Image

# Get text in the image
text = pytesseract.image_to_string(Image.open(filename))

# Convert string into hexadecimal
hex_text = text.encode("hex")

【讨论】:

  • 多谢回复。请问可以识别不同字体的字符吗?
  • 可以,只要不是手写的东西
  • 或书法类字体
  • 请您发布图片样本好吗?这有助于我们探索可能性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2014-05-29
  • 2011-07-16
  • 1970-01-01
相关资源
最近更新 更多