标签: python-tesseract

tesseract的OCR结果非常不一致

在此输入图像描述

这是原始屏幕截图,我将图像裁剪成4个部分,并将图像的背景清除到我可以做的范围,但tesseract只检测到最后一列而忽略了其余部分.

在此输入图像描述

显示tesseract的输出,因为在处理结果时我删除了空格

  Femme—Fatale.



  DaRkLoRdEIa
  aChineseN1gg4

  Noob_Diablo_
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

显示tesseract的输出,因为在处理结果时我删除了空格

Kicked.

NosNoel
ChikiZD
Death_Eag|e_42

Chai—.
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

3579 10 1 7 148

2962 3 O 7 101

2214 2 2 7 99

2205 1 3 6 78
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

8212

7198

6307

5640

4884

15

40

40

6O

80

80
Run Code Online (Sandbox Code Playgroud)

我只是倾销输出

result = `pytesseract.image_to_string(Image.open("D:/newapproach/B&W"+str(i)+".jpg"),lang="New_Language")`
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何从这里开始获得一致的结果.无论如何,我可以强制tesseract识别文本区域并使其扫描.因为在培训师(SunnyPage)中,tesseract默认识别扫描它无法识别某些区域,但一旦我选择手动,一切都被检测到并正确翻译成文本

python opencv python-tesseract pytesser

9
推荐指数
1
解决办法
6870
查看次数

简单的验证码解决

我正在尝试使用 OpenCV 和 pytesseract 解决一些简单的验证码。一些验证码样本是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

我试图用一些过滤器去除嘈杂的点:

import cv2
import numpy as np
import pytesseract

img = cv2.imread(image_path)
_, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, np.ones((4, 4), np.uint8), iterations=1)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imwrite('res.png', img)
print(pytesseract.image_to_string('res.png'))
Run Code Online (Sandbox Code Playgroud)

结果转换后的图像是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

不幸的是,pytesseract 只能正确识别第一个验证码。还有其他更好的改造吗?

最终更新:

正如@Neil 所建议的那样,我尝试通过检测连接的像素来消除噪声。为了找到连接的像素,我找到了一个名为 的函数connectedComponentsWithStats,它检测连接的像素并为组(组件)分配一个标签。通过查找连接组件并删除具有少量像素的组件,我设法使用 pytesseract 获得了更好的整体检测精度。

这是新的结果图像:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

captcha python-tesseract opencv-python

9
推荐指数
1
解决办法
1183
查看次数

如何改进印地语文本提取?

我正在尝试从 PDF 中提取印地语文本。我尝试了所有从 PDF 中提取的方法,但都没有奏效。有解释为什么它不起作用,但没有这样的答案。因此,我决定将PDF转换为图像,然后用于pytesseract提取文本。我已经下载了印地语训练的数据,但是这也提供了非常不准确的文本。

这是 PDF 中的实际印地语文本(下载链接):

实际印地语

到目前为止,这是我的代码:

import fitz

filepath = "D:\\BADI KA BANS-Ward No-002.pdf"

doc = fitz.open(filepath)
page = doc.loadPage(3)  # number of page
pix = page.getPixmap()
output = "outfile.png"
pix.writePNG(output)
from PIL import Image
import pytesseract

# Include tesseract executable in your path
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# Create an image object of PIL library
image = Image.open('outfile.png')

# pass image into pytesseract module
# pytesseract is trained in many languages
image_to_text …
Run Code Online (Sandbox Code Playgroud)

python pdf-extraction python-tesseract

9
推荐指数
2
解决办法
459
查看次数

pytesseract - 无效分辨率 0 dpi

我正在使用 pytesseract v5.0,并使用 OpenCV 旋转图像,然后将其传递给 pytesseract.image_to_osd()。有一些图像可以与 image_to_osd 一起使用,但其他图像则不能,并且程序会给出以下错误: TesseractError: (1, 'Tesseract Open Source OCR Engine v5.0.0-alpha.20201127 with Leptonica警告:无效分辨率 0 dpi .使用 70 代替。估计分辨率为 179 警告。无效分辨率 0 dpi。使用 70 代替。字符太少。跳过此页处理过程中出错。')我正在使用 python 3.9.5。

请分享解决方案/示例代码来解决此问题。

ocr python-tesseract

9
推荐指数
1
解决办法
3572
查看次数

我可以在Windows命令行中测试tesseract ocr吗?

我是tesseract OCR的新手.我试图将图像转换为tif并运行它以查看在Windows中使用cmd从tesseract输出的内容,但我不能.你能帮助我吗?什么命令可以使用?

这是我的示例图片:

在此输入图像描述

ocr tesseract python-tesseract

8
推荐指数
1
解决办法
3万
查看次数

如何在python中使用OCR获取从Image识别的文本坐标

我正在尝试使用 Tesseract 从图像中获取文本字符的坐标或位置。我想知道确切的像素位置,以便我可以使用其他工具单击该文本。

编辑 :

import pytesseract
from pytesseract import pytesseract
import PIL
from PIL import Image
import cv2
import csv

img = 'E:\\OCR-DATA\\sample.jpg'
imge = Image.open(img)
    data=pytesseract.image_to_string(imge,lang='eng',boxes=True,config='hocr')

print(data)
Run Code Online (Sandbox Code Playgroud)

data包含具有框边界值的识别文本。但我不确定,如何使用该边界值来获取文本的坐标。

data变量的值如下:

O 100 356 115 373 0

u 117 356 127 368 0

t 130 356 138 372 0

p 141 351 152 368 0

u 154 356 164 368 0

t 167 356 175 371 0
Run Code Online (Sandbox Code Playgroud)

python ocr tesseract image-processing python-tesseract

8
推荐指数
2
解决办法
7784
查看次数

如何将标题和标题与图像中的正文文本分开

我正在使用 tesseract(通过 python 包装器)来从文档中提取文本。这些文档不包含任何图像或表格,仅包含文本。

是否有任何选项可以将标题/标题与文本区分开来?理想情况下,我希望能够拥有类似于 xml 树的东西,而不是完整的字符串链(我不需要查看文档布局)。

我找到了一些似乎能够提供帮助的第三方工具,但我想知道是否可以直接从 tesseract 中完成。

在此处输入图片说明

python ocr opencv tesseract python-tesseract

8
推荐指数
1
解决办法
1721
查看次数

python中的实时OCR

问题

我试图用 OpenCV 捕获我的桌面并让 Tesseract OCR 查找文本并将其设置为变量,例如,如果我要玩游戏并且捕获帧超过资源量,我希望它打印并使用它。一个完美的例子是Micheal Reeves 的视频 ,每当他在游戏中失去健康时,它就会显示它并将其发送到他的蓝牙气枪来射击他。到目前为止,我有这个:

# imports
from PIL import ImageGrab
from PIL import Image
import numpy as np
import pytesseract
import argparse
import cv2
import os

fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output.avi", fourcc, 5.0, (1366, 768))

while(True):
        x = 760
        y = 968

        ox = 50
        oy = 22

        # screen capture
        img = ImageGrab.grab(bbox=(x, y, x + ox, y + oy))
        img_np = np.array(img)
        frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
        cv2.imshow("Screen", frame)
        out.write(frame)

        if …
Run Code Online (Sandbox Code Playgroud)

python ocr image image-recognition python-tesseract

8
推荐指数
1
解决办法
4061
查看次数

Pytesseract.TesseractError'用法:python pytesseract.py [-l lang] input_file

尝试将简单的测试图像打印到文本时,我收到以下错误.

我已经确认我有Pillow(PIL 1.1.7)并尝试卸载并重新安装pytesseract.文件路径是正确的,因为如果我更改它们,我会收到另一个错误,指出无法找到该文件.

我的代码:

    from PIL import Image
    import pytesseract

    pytesseract.pytesseract.tesseract_cmd= r'C:\Users\bbrown2\AppData\Local\
    Programs\Python\Python37\Scripts\pytesseract'

    img = r'C:\Users\bbrown2\Desktop\test.png'

    print(pytesseract.image_to_string(Image.open(img)))
Run Code Online (Sandbox Code Playgroud)

我希望它打印出图像中的单词,但我总是这样:

    Traceback (most recent call last):
    File 
   "c:\Users\bbrown2\Desktop\PythonMaterials\python_test_tesseract.py", line 
    14, in <module>
   print(pytesseract.image_to_string(Image.open(image)))
   File "C:\Users\bbrown2\AppData\Local\Programs\Python\Python37\lib\site- 
   packages\pytesseract\pytesseract.py", line 309, in image_to_string
   }[output_type]()
    File "C:\Users\bbrown2\AppData\Local\Programs\Python\Python37\lib\site- 
   packages\pytesseract\pytesseract.py", line 308, in <lambda>
   Output.STRING: lambda: run_and_get_output(*args),
   File "C:\Users\bbrown2\AppData\Local\Programs\Python\Python37\lib\site- 
   packages\pytesseract\pytesseract.py", line 218, in run_and_get_output
   run_tesseract(**kwargs)
   File "C:\Users\bbrown2\AppData\Local\Programs\Python\Python37\lib\site- 
   packages\pytesseract\pytesseract.py", line 194, in run_tesseract
   raise TesseractError(status_code, get_errors(error_string))
   pytesseract.pytesseract.TesseractError: (2, 'Usage: python pytesseract.py 
   [-l lang] input_file')
Run Code Online (Sandbox Code Playgroud)

python-tesseract

8
推荐指数
1
解决办法
2094
查看次数

为什么用PIL和pytesseract无法获得字符串?

它是Python 3中的一个简单的光学字符识别(OCR)程序,用于获取字符串,我已经在此处上传了目标gif文件,请下载并将其另存为/tmp/target.gif

在此处输入图片说明

try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract
print(pytesseract.image_to_string(Image.open('/tmp/target.gif')))
Run Code Online (Sandbox Code Playgroud)

我将所有错误信息粘贴到此处,请修复它以从图像中获取字符。

/usr/lib/python3/dist-packages/PIL/Image.py:925: UserWarning: Couldn't allocate palette entry for transparency
  "for transparency")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/pytesseract/pytesseract.py", line 309, in image_to_string
    }[output_type]()
  File "/usr/local/lib/python3.5/dist-packages/pytesseract/pytesseract.py", line 308, in <lambda>
    Output.STRING: lambda: run_and_get_output(*args),
  File "/usr/local/lib/python3.5/dist-packages/pytesseract/pytesseract.py", line 208, in run_and_get_output
    temp_name, input_filename = save_image(image)
  File "/usr/local/lib/python3.5/dist-packages/pytesseract/pytesseract.py", line 136, in save_image
    image.save(input_file_name, format=img_extension, **image.info)
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 1728, in save
    save_handler(self, …
Run Code Online (Sandbox Code Playgroud)

python ocr python-3.x python-tesseract

8
推荐指数
1
解决办法
482
查看次数