使用python进行Pytesseract外语提取

2023-11-23

我在 Windows 机器上使用 Python 2.7、Pytesseract-0.1.7 和 Tesseract-ocr 3.05.01。

我尝试提取韩语和俄语的文本,并且我确信我提取了。

现在我需要将字符串与从图像中提取的字符串进行比较。

我无法比较字符串并获得正确的结果,它只是说不匹配。

这是我的代码:

# -*- coding: utf-8 -*-
from PIL import Image
import pytesseract
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True, help="path to the image")
args = vars(ap.parse_args())
img = Image.open(args["input"])
img.load()
text = pytesseract.image_to_string(img)
print(text)
text = text.encode('ascii')
print(text)
i = 'Сред. Скорость'
print i
if ( text == i):
    print "Match"
else :
    print "Not Match"

附有用于提取文本的图像。

现在我需要一种方法来匹配它。我还需要知道从 pytesseract 中提取的字符串将采用 Unicode 还是什么?是否有办法将其转换为 Unicode(就像我们在写字板中可以选择将字符转换为 Unicode)

Russian text image


您正在使用英语以外的语言使用 Tesseract,因此首先请确保您安装了适合您的语言的学习数据集,如图所示here(仅限 Linux 指令)。

其次,如果您使用非 ascii 语言(就像我一样,作为一个斯洛文尼亚人),我强烈建议您切换到 Python 3。 Python 3 可以开箱即用地使用 Unicode,因此它确实为您节省了编码和解码字符串的大量痛苦......

# python3 obligatory !!!    
from PIL import Image
import pytesseract

img = Image.open("T9esw.png")
img.load()
text = pytesseract.image_to_string(img, lang="rus")  #Specify language to look after!
print(text)
i = 'Сред. Скорость'
print(i)
if (text == i):
    print("Match")
else :
    print("Not Match")

哪个输出:

Фред скорасть
Сред. Скорость
Not Match

这意味着单词不太匹配,但考虑到最少的编码工作和输入图像的糟糕质量,它认为性能相当惊人。无论如何,这个例子表明编码和解码应该不再是问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python进行Pytesseract外语提取 的相关文章

随机推荐

  • 如果您递增一个等于 STL 容器的结束迭代器的迭代器,会发生什么

    如果当迭代器指向向量的最后一个元素时将其增加 2 会怎样 在这个问题询问如何通过 2 个元素将迭代器调整为 STL 容器 提供了两种不同的方法 使用算术运算符 2 或 两次 或使用 std advance 我已经使用 VC 7 对它们进行了
  • Android 应用程序锁定相机

    是否可以获取当前在 Android 设备上锁定相机的应用程序 进程的 Android 应用程序 进程 ID 或包名称或其他 使用以下命令很容易查看它是否已锁定Camera open 但我想找出有它的过程 Thanks CameraServi
  • 如何解决 sqlite 和 c# 中的“'”问题?

    我正在使用 Sqlite 使用 Microsoft Visual C 2008 Express 我知道我的文本中的撇号 在查询中存在问题 我的问题是我认为我可以用 替换它 它似乎不起作用 这是我的代码的简化示例 string myStrin
  • 如何安全地访问 Django 模型中的请求对象

    我正在尝试做的事情 我正在尝试访问我的 django 模型中的请求对象 以便我可以使用以下命令获取当前登录的用户request user 我尝试过的 我发现了一个黑客this地点 但评论中有人指出在生产时不要这样做 我还尝试覆盖模型的 in
  • 计算预测值时发出警告

    使用数据框 x Date Val 1 1 2012 7 2 1 2012 9 3 1 2012 20 4 1 2012 24 5 1 2012 50 a lt seq as Date tail x 1 Date by month lengt
  • 序列化 Jackson JSON 树模型时排除 NullNode

    我有一个 pojo 类型 在序列化时需要将特定数值设置为特殊字符串 这些值将始终为空 可能非常深入层次结构 为了实现这一点 我首先将 pojo 转换为带有完整 null 的 JsonNode 以保留属性顺序 然后我沿着结构中的路径设置一些字
  • 验证动态添加的控件

    如何将动态添加的控件添加到验证中 div class editor field Html EditorFor model gt model Middlename div div div
  • 从 Chrome 控制台使用 Tampermonkey API?

    有什么办法使用篡改猴的 API在 Chrome 的 JavaScript 控制台中 我想搞乱像这样的功能GM xmlhttpRequest and GM listValues 创建以下脚本 UserScript name Exports s
  • Polymer:手动提交表单

    在聚合物中 我正在尝试手动提交表单 我的表格如下所示
  • 获取两个多边形相交区域的坐标(Python)

    假设我有两个多边形 它们的名称和坐标是 在 Python 中 p 1 1 2 2 4 2 3 1 q 1 5 2 3 5 5 4 3 5 1 在我们人脑中 很容易知道这两个多边形相交并计算相交区域坐标 但我想让我们的机器知道如何计算相交区域
  • 在 Unity 中显示实时摄像头源

    我有一个关于 Unity 的问题 我希望这个问题之前没有得到回答 我想将相机 如高清摄像头 连接到我的计算机 并且视频源应显示在我的 Unity 场景中 可以将其想象为虚拟电视屏幕 实时显示摄像机所看到的内容 我怎样才能做到这一点 谷歌没有
  • Facebook XMPP 聊天 API 发送消息 PHP

    我目前正在研究 Facebook Chat API 我想通过应用程序向我的 Facebook 联系人发送聊天消息 使用 facebook 提供的示例 我能够连接到 facebook 聊天服务器 但这更多的是一种反复试验的事情 我只能模糊地理
  • 在 c# 类型上切换大小写[重复]

    这个问题在这里已经有答案了 可能的重复 C 是否有比 打开类型 更好的替代方案 你好 假设我在类类型上有一个很大的 if else 有没有办法用开关盒来做到这一点 例子 function test object obj if obj is
  • 是否可以在 Android API < 24 上使用 Java 8 Stream API?

    我读过这个post这里 但我仍然无法在 minSdkVersion List
  • 如何在字符串中使用函数?

    a href 1 class bbc link new win target blank 我想使用urlencode 功能 a href urlencode 1 class bbc link new win target blank 但我不
  • 我可以在同一进程中使用同一 DLL 的两个不兼容版本吗?

    我使用的是同一供应商生产的两个商业库 称为 VendorLibA 和 VendorLibB 这些库根据编译器版本 例如 VC7 VC8 分布为多个 DLL 这两个库都依赖于该供应商生成的另一个库 称为 VendorLibUtils 并包含在
  • python,Windows 10:在特定的虚拟桌面环境(工作空间)上启动应用程序

    我有 3 个不同的 Windows 10 虚拟桌面 当计算机启动时 我希望 python 加载不同虚拟桌面中的所有应用程序 现在我只能在桌面 1 中启动 我如何告诉 python 在桌面 2 和 3 中启动应用程序 我正在使用Python
  • 实现jqgrid单元格编辑日期选择器

    我知道由于引用 可以使用日期选择器进行单元格编辑here and here 但是 当我单击单元格时 没有显示日期选择器 下面是相关列的 colModel 条目 我有可用的日期选择器用户界面 在其他示例中 dataInit 没有用引号引起来
  • Xcode 6 - 将 segue 推送到同一视图控制器

    我有一个表视图控制器 点击单元格可以根据单元格中的数据类型触发许多不同类型的推送序列之一 正确segue的标识符在tableView didSelectRowAtIndexPath 中确定 然后使用self performSegueWith
  • 使用python进行Pytesseract外语提取

    我在 Windows 机器上使用 Python 2 7 Pytesseract 0 1 7 和 Tesseract ocr 3 05 01 我尝试提取韩语和俄语的文本 并且我确信我提取了 现在我需要将字符串与从图像中提取的字符串进行比较 我