标签: python-tesseract

pytesseract 输出未定义

尝试在 python 上运行 tesseract,这是我的代码:

import cv2
import os
import numpy as np
import matplotlib.pyplot as plt
import pytesseract
import Image
# def main():
jpgCounter = 0
    for root, dirs, files in os.walk('/home/manel/Desktop/fotografias etiquetas'):
    for file in files:
        if file.endswith('.jpg'):
        jpgCounter += 1

for i in range(1, 2):

    name                = str(i) + ".jpg"
    nameBW              = str(i) + "_bw.jpg"
    img                 = cv2.imread(name,0) #zero -> abre em grayscale
    # img                 = cv2.equalizeHist(img)
    kernel = np.array([[0,-1,0], [-1,5,-1], [0,-1,0]])
    img = cv2.filter2D(img, -1, kernel)
    cv2.normalize(img,img,0,255,cv2.NORM_MINMAX) …
Run Code Online (Sandbox Code Playgroud)

python ubuntu tesseract python-tesseract pytesser

3
推荐指数
2
解决办法
5174
查看次数

pytesseract tessedit_char_whitelist 不接受报价

我已经开始在 python 中使用 pytesseract。当我将它传递给单引号或双引号时

from PIL import Image
import pytesseract
import numpy as np

tesseract_config = r"""-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#'<>(){};:"""
tesseract_language = "eng"

text = pytesseract.image_to_string(Image.open('res/outc001.jpg'), lang=tesseract_language, config=tesseract_config)
print text
Run Code Online (Sandbox Code Playgroud)

它返回

Traceback (most recent call last):
  File "main.py", line 15, in <module>
    text = pytesseract.image_to_string(Image.open('res/outc001.jpg'), lang=tesseract_language, config=tesseract_config).split('\n')
  File "/usr/local/lib/python2.7/dist-packages/pytesseract/pytesseract.py", line 193, in image_to_string
    return run_and_get_output(image, 'txt', lang, config, nice)
  File "/usr/local/lib/python2.7/dist-packages/pytesseract/pytesseract.py", line 140, in run_and_get_output
    run_tesseract(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pytesseract/pytesseract.py", line 106, in run_tesseract
    command += shlex.split(config)
  File "/usr/lib/python2.7/shlex.py", line 279, in split
    return …
Run Code Online (Sandbox Code Playgroud)

python quotes tesseract python-tesseract pytesser

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

PyTesseract 调用与多处理一起使用时工作速度非常慢

我有一个函数,它接收图像列表并在将 OCR 应用于图像后在列表中生成输出。我有另一个函数,通过使用多处理来控制此函数的输入。因此,当我只有一个列表(即没有多重处理)时,列表中的每个图像花费了大约 1 秒,但是当我将必须并行处理的列表增加到 4 时,每个图像花费了惊人的 13 秒。

为了了解问题的真正所在,我尝试创建一个最小的问题示例。在这里,我有两个函数eat25eat100它们打开一个图像name并将其提供给使用 API 的 OCR pytesseracteat25做25次,eat100做100次。

我的目标是在eat100没有多处理和eat25多处理(有 4 个进程)的情况下运行。理论上,eat100如果我有 4 个独立的处理器(我有 2 个内核,每个内核有 2 个线程,因此 CPU(s) = 4(如果我错了,请纠正我),这应该比我少 4 倍的时间)。

但是当我看到代码在打印“Processing 0”4次后甚至没有响应时,所有的理论都被浪费了。不过,单处理器功能eat100运行良好。

我测试了一个简单的范围立方函数,它在多处理中运行良好,所以我的处理器可以肯定运行良好。这里唯一的罪魁祸首可能是:

  • pytesseract: 看到这个
  • 代码不好?我做的不对。

`

from pathos.multiprocessing import ProcessingPool
from time import time 
from PIL import Image
import pytesseract as pt
def eat25(name):
    for i in range(25):
        print('Processing :'+str(i)) …
Run Code Online (Sandbox Code Playgroud)

python tesseract multiprocessing python-tesseract pathos

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

使用 pytesseract 从图像生成 PDF

我正在使用以下代码从图像生成 PDF。

PDF=pytesseract.image_to_pdf_or_hocr(test_image,lang='dan',config='',nice=0,extension='pdf')
Run Code Online (Sandbox Code Playgroud)

并且 PDF 变量的类型显示为 BYTES。

我如何发布或生成 PDF?

python ocr python-tesseract

3
推荐指数
2
解决办法
4159
查看次数

为什么 pytesseract 无法识别这张简单图像中的数字?

我正在尝试使用 pytesseract 从图像中识别两个数字:

在此处输入图片说明

  • 我已经尝试--psm 610
  • 我试过了 -c tessedit_char_whitelist=0123456789'

以上都不返回49数字。我得到的最接近的返回4没有9

你有关于如何让tesseract识别它的任何提示吗?

python ocr tesseract python-tesseract

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

如何在图像中的文本区域周围制作边界框?(即使文字是歪斜的!!)

我试图从任何消费产品的广告截取的屏幕截图中检测和抓取文本。

我的代码以一定的精度工作,但无法在倾斜的文本区域周围制作边界框。

最近我尝试了Google Vision API,它在几乎所有可能的文本区域周围制作边界框,并非常准确地检测该区域中的文本。我很好奇我怎样才能达到相同或相似!

我的测试图像:

在此处输入图片说明

边界框后的 Google Vision API:

在此处输入图片说明

先感谢您:)

opencv imagemagick bounding-box python-tesseract google-vision

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

Python pytesseract - 找不到 eng.traineddata - oem 2

我正在尝试从简单的图像中提取文本。

样本图像

当我使用默认引擎(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)
Run Code Online (Sandbox Code Playgroud)

当我尝试传递更改引擎的选项时,出现错误,提示找不到语言文件:

pytesseract.pytesseract.TesseractError:(1,“错误:已请求 Tesseract(旧版)引擎,但 C:/Program Files/Tesseract-OCR/tessdata/eng.traineddata 中不存在组件!!加载语言“eng”Tesseract 失败无法加载任何语言!无法初始化 tesseract。”)

#experimental config
config = '--psm 6'
text = pytesseract.image_to_string(crop, config=config)
Run Code Online (Sandbox Code Playgroud)

如您所见,我显式传入 eng.traineddata 目录,但它找不到语言文件。

我有两个问题:

  1. 如何使用第一个配置文件提高 OCR 质量?
  2. 为什么找不到语言文件?我在提到的文件夹中有 eng.traineddata、eng.user-patterns 和 eng.user-words,以及安装在那里的一些其他文件和文件夹。

我还确保我的环境变量是正确的(因此第一个配置文件可以工作)。

谢谢

python ocr tesseract image python-tesseract

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

从文件名读取单页 .tif 文件作为多页.tiff

更新:我发现从 OCRed 文件创建 pdf 文件是不合理的

所以最好保持原样,不进行转换。我仍然遇到一些图像已连接而其他图像是 1 个寻呼机的问题。

data = []
listOfPages = glob.glob(r"C:/Users/name/test/*.tif")
for entry in listOfPages:
    text = pytesseract.image_to_string(
            Image.open(entry), lang="en"
        )
    data.append(text)
df0 = pd.DataFrame(data, columns =['raw_text'])
Run Code Online (Sandbox Code Playgroud)

这将创建一个 pandas df,其中每一行都是文件第一(单)页的字符串.tif。我如何连接 tif 文件(参见原始问题)以获得完整的多页字符串?

原始问题:我想将单页 .tif 文件转换my_folder为. 没有后续页面的 TIFF 也应转换为单页 PDF。最终,我想要一个通过 OCR 处理多个基于图像的 TIFF 文件创建的文本 PDF。.pdfpdf_folder

.tiff因此,我从文件名模式推断应该放在一起的文件组:

Drs_1_00109_1_ADS.tif
Drs_1_00099_1_ADS_000.tif
Drs_1_00099_1_ADS_001.tif
Drs_1_00099_1_ADS_002.tif
Drs_1_00186_1_ADS.tif
Drs_1_00192_1_ADS_000.tif
Drs_1_00192_1_ADS_001.tif
Run Code Online (Sandbox Code Playgroud)

例如,我想将Drs_1_00192_1_ADS_000.tifDrs_1_00192_1_ADS_001.tif(这是两张[单页]图片)转换为Drs_1_00192_1_ADS.pdf包含这两张图片文本数据的 2 页。该代码适用于单页 pdf 创建。我怎样才能使这个工作适用于文件名中的所述多页模式?

谢谢!

python filenames tesseract tiff python-tesseract

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

在Pytesser中使用多种语言

我已经开始使用Pytesser,它可以同时使用英语和中文,但是有没有办法同时使用两种语言?我需要制作自己的训练数据文件吗?我的代码是:

import Image
from pytesser import *
print image_to_string(Image.open("chinese_and_english.jpg"), lang="eng")
#also want to have chinese be recognized 
Run Code Online (Sandbox Code Playgroud)

chinese_and_english

python ocr tesseract python-tesseract pytesser

2
推荐指数
1
解决办法
4933
查看次数

pytesseract和image.tif文件

我需要使用pytesseract将具有多个页面的image.tif转录为文本。我有下一个代码:

> From PIL import Image
> Import pytesseract
> Pytesseract.pytesseract.tesseract_cmd = 'C: / Program Files (x86) / Tesseract-
> OCR / tesseract '
> Print (pytesseract.image_to_string (Image.open ('CAMARA.tif'), lang = "spa"))
Run Code Online (Sandbox Code Playgroud)

问题在于只能提取冷杉页面。我如何提取所有这些?

python python-tesseract pytesser

2
推荐指数
1
解决办法
1403
查看次数