- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从简单图像中提取文本。
当我使用默认引擎 (oem 3) 时,文本被提取(很差)。我想使用其他引擎 (oem 2) 看看输出是否可以提高。
import pytesseract
#this is the config that gives a poor output
config = '--tessdata-dir "C:/Program Files/Tesseract-OCR/tessdata" -l eng --oem 2 --psm 6'
text = pytesseract.image_to_string(crop, config=config)
当我尝试传递更改引擎的选项时,出现错误,提示未找到语言文件:
pytesseract.pytesseract.TesseractError: (1, "Error: Tesseract (legacy) engine requested, but components are not present in C:/Program Files/Tesseract-OCR/tessdata/eng.traineddata!! 加载语言失败 'eng 'Tesseract 无法加载任何语言!无法初始化 tesseract。")
#experimental config
config = '--psm 6'
text = pytesseract.image_to_string(crop, config=config)
如您所见,我显式传入了 eng.traineddata 的目录,但它找不到语言文件。
我有两个问题:
我还确保我的环境变量是正确的(因此第一个配置文件可以工作)。
谢谢
最佳答案
执行OCR时,在将图像扔进Pytesseract之前对图像进行预处理是极其重要的。专门针对此图像,我们可以删除水平和垂直网格线。这是预处理后的图像:
Pytesseract OCR 结果
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
89 987 98 7 987 9 789 87 987 9
978 9 78 978 9 789 78 987 9
78 987 9 78 *978 97/8 %9 “78 978 9
78 978 978 978 978 98 9
78 978 978 978 978 978 987 978 7897
978 9 9 78 9 89 98 978 9
代码
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
# Remove horizontal and vertical lines
image = cv2.imread('1.png')
kernel_vertical = cv2.getStructuringElement(cv2.MORPH_RECT, (1,50))
temp1 = 255 - cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel_vertical)
horizontal_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (50,1))
temp2 = 255 - cv2.morphologyEx(image, cv2.MORPH_CLOSE, horizontal_kernel)
temp3 = cv2.add(temp1, temp2)
result = cv2.add(temp3, image)
data = pytesseract.image_to_string(result, lang='eng',config='--psm 6')
print(data)
cv2.imshow('result', result)
cv2.waitKey()
关于Python pytesseract - 找不到 eng.traineddata -- oem 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59140134/
所以我的手机在引导加载程序中,我想解锁它 所以我输入 fastboot oem unlock 我明白了 D:\Minimal ADB and Fastboot>fastboot oem unlock
我想在我的 Android 设备上测试我的 Android 应用程序,它是 Samsung Galaxy Trend Lite(也称为 Samsung Galaxy Fresh)GT-S7390。但是
在 Huwaie Ascend 上,当我们浏览设置菜单时: Settings -> SD card & phone storage -> Software Upgrade -> SD card Upg
我正在尝试将 AOSP 闪存到 Nvidia Tegra K1 开发板上:https://developer.nvidia.com/jetson-tk1我见过的每一个将 Android 闪存到设备上的
某些 OEM(例如三星的 touchwiz)允许用户更改其手机中的字体,从而更改其应用程序中的字体。有没有办法在我的应用程序中阻止此操作? 编辑:正如我在下面的评论中所说,这绝对不是重复的。标记为可能
我在设置我的计算机以便运行 Delphi 时不断遇到相同的错误,我已经在 PLATFORM 环境变量上设置了用户覆盖,将其转换为 win32,但它仍然给出同样的错误; [Error Error] In
我想检查上次在我的 Oracle 10g 服务器上运行 stats 的时间。我通常会通过 OEM 执行此操作,但由于无关的原因 OEM 已关闭。有什么方法可以只使用 sqlplus 来检查这个吗?如果
我有一个 PendoPad Android 设备不在我想调试应用程序的 OEM 列表中。我花时间阅读了 Android 开发网站,但我的设备未列在 OEM 列表中。 我已经在 Windows 7 上安
如何获取每个语言环境的代码页(不仅是我的语言环境)? 我在 python/c#/c(更喜欢 python 或 c#)中寻找一个简单的函数来为我想要的每个语言环境找到什么是 Ansi 和 OEM 中的代
我有一个现有的 iOS 应用程序,我需要能够为不同的客户构建和发布多个版本。 这个应用程序与少数不同公司提供的硬件接口(interface),硬件是相同的,但每个公司都以不同的名称销售硬件 这是一个免
在使用 Android Things 控制台创建另一个 Android Things 产品时,我再次想知道要选择什么 oem 分区大小。此设置的信息是“必须在 32 到 512 MB 之间”,这是一个
我正在尝试从简单图像中提取文本。 当我使用默认引擎 (oem 3) 时,文本被提取(很差)。我想使用其他引擎 (oem 2) 看看输出是否可以提高。 import pytesseract #this
一个 friend 在弄清楚如何将“Ctrl + +”作为快捷键分配给ToolStripMenuItem时遇到麻烦。我指出Keys.OemPlus键可以使用,并且需要设置快捷方式的显示字符串,但是Ke
对于 Unicode 版本专家: 是否可以定义反射(reflect)当前 OEM 编码的 ansisstring 类型? (假设没有代码页标识符的 ansisstring 反射(reflect) an
我正在编写一个 Windows 应用商店应用程序,为了使功能正常工作,我需要处理 +、-、*、/、?、!在 KeyDown 事件处理程序中等等。但是 VirtualKey 类没有包含这些键,我找不到任
可以使用 WMI 来完成。 但是有没有简单的方法(类似于Environment.Is64BitOperatingSystem)? 编辑:WMI 有权限限制。据我所知,Is64BitOperatingS
我将如何从注册表中提取 Windows OEM key 并将其保存到文件中。 最佳答案 您已经进入了不受支持的领域。产品 key 以加密形式存储在注册表中。你可能想看看 Magical Jellybe
我正在开发 wpf c# 应用程序,我需要检测用户何时按下“/ ” 但我找不到“/ ” e.Key,我看到有Key.OemBackslash和类似的东西,但我找不到“/”(正斜杠)的正确事件.....
我现在有一台 IdeaPad A1-07,想调试 Android 应用程序。我正在使用 Win7 和 eclipse,Android 文档说我必须先安装 OEM 驱动程序,所以我点击了 Lenovo
我有一台型号为 GT-P5110 的三星平板电脑,我需要下载 OEM USB 驱动程序,因为我无法测试我在 android studio 上创建的应用程序,有人可以给我提供我应该去哪里的链接吗下载这些
我是一名优秀的程序员,十分优秀!