标签: python-tesseract

tesseract 从表中读取值

我的问题是关于使用 OCR 从图像中的表中提取数据的这篇文章

我正在使用tesseract将表格图像转换为文本。除了不保留表的格式之外,这很有效。一种解决方案是用一些字母替换列,这些字母tesseract会识别并愚弄它把表格当作一些文本。

这是一个没有列的表的示例 在此处输入图片说明

我使用以下代码绘制“QQ”的列

im=Image.open("file.png")
draw  = ImageDraw.Draw(im)
font=ImageFont.truetype("/usr/share/fonts/gnu-free/FreeSerifBold.ttf",12)
by = font.getsize("S")[1]
col = [240,480]
px = []

for y in range(0,im.size[1],by):
    for x in col:
        draw.text((x,y),"QQ",font=font,fill=0)

im.save("res-file.png")
im.show()
Run Code Online (Sandbox Code Playgroud)

这给了我以下图片 在此处输入图片说明

问题是 tesseract 甚至可以识别 QQ。我也把QQ列写在空白页上,tesseract不认。

有没有办法使用tesseract将png格式的表格转换为文本?有什么东西让我逃过一劫吗?

python tesseract python-tesseract

5
推荐指数
1
解决办法
5763
查看次数

如何减少魔杖内存使用量?

我正在使用魔杖和 pytesseract 将 pdf 的文本上传到 django 网站,如下所示:

image_pdf = Image(blob=read_pdf_file, resolution=300)
image_png = image_pdf.convert('png')

req_image = []
final_text = []

for img in image_png.sequence:
    img_page = Image(image=img)
    req_image.append(img_page.make_blob('png'))

for img in req_image:
    txt = pytesseract.image_to_string(PI.open(io.BytesIO(img)).convert('RGB'))
    final_text.append(txt)

return " ".join(final_text)
Run Code Online (Sandbox Code Playgroud)

我让它在单独的 ec2 服务器中的 celery 中运行。然而,因为即使是 13.7 mb 的 pdf 文件,image_pdf 也会增长到大约 4gb,所以它被 oom 杀手阻止了。我不想为更高的内存付费,而是想尝试减少魔杖和 ImageMagick 使用的内存。由于它已经是异步的,我不介意增加计算时间。我浏览了这个:http : //www.imagemagick.org/Usage/files/#massive,但我不确定它是否可以用魔杖实现。另一种可能的解决方法是一次一页地打开 pdf,而不是一次将完整图像放入 RAM 中。或者,我如何直接使用 python 与 ImageMagick 接口,以便我可以使用这些内存限制技术?

python imagemagick amazon-ec2 wand python-tesseract

5
推荐指数
1
解决办法
1955
查看次数

获取方向 pytesseract Python3

我想获取扫描文档的方向。我看到了这篇文章Pytesseract OCR multiple config options并尝试使用它--psm 0来获取方向。

target = pytesseract.image_to_string(text, lang='eng', boxes=False, \
config='--psm 0 tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz')
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/jy/np7p4twj4bx_k396hyc_bnxw0000gn/T/tess_dzgtpadd_out.txt'
Run Code Online (Sandbox Code Playgroud)

python tesseract python-tesseract

5
推荐指数
2
解决办法
6051
查看次数

Tesseract 3.x多处理奇怪的行为

我不确定这种奇怪的东西或者tesseract-ocr本身是不是我的基础设施.

每当我在单进程环境中使用image_to_stirng时 - tesseract-ocr工作正常.但是当我用gunicorn产生多个工作人员并且所有人都开始使用ocr读取工作时 - tesseract-ocr开始阅读非常差(而不是来自性能老虎钳,但不是精确的老虎钳).即使在负载完成后 - tesseract也没有相同的准确性.我需要重新启动所有工人才能让tesseract再次运转良好.

这太超级怪了.也许有人已经过期或听说过这个问题?

python tesseract gunicorn python-tesseract

5
推荐指数
1
解决办法
287
查看次数

如何从包含表格数据的图像中提取数据?

我正在使用 pytesseract、pillow、cv2 对图像进行 OCR 并获取图像中的文本。由于我输入的是扫描的 PDF 文档,我首先将其转换为图像 (JPEG) 格式,然后尝试提取文本。我只走了一半。输入是一个表格,没有显示标题,因为标题有黑色背景。我也尝试过,getstructuringelement但无法想出办法。这是我迄今为止所做的-

import cv2
import os  
import numpy as np 
import pytesseract
#import pillow 

#Since scanned PDF can't be handled by pdf2image, convert the scanned PDF into a JPEG format using the below code- 
filename = path   
from pdf2image import convert_from_path 
pages = convert_from_path(filename, 500) for page in pages:
page.save("dest", 'JPEG')


imgname = "path" 
oriimg = cv2.imread(imgname,cv2.IMREAD_COLOR) 
cv2.imshow("original image", oriimg)
cv2.waitKey(0)


#img = cv2.resize(oriimg,None,fx=0.5,fy=0.5,interpolation=cv2.INTER_CUBIC) 
img = cv2.resize(oriimg,(700,1500),interpolation=cv2.INTER_AREA) 
#here length height  
cv2.imshow("lol", …
Run Code Online (Sandbox Code Playgroud)

python ocr opencv tesseract python-tesseract

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

通过图像中的边界框提取选定的文本

图像

我正在尝试通过图像上的边界框获取选定的文本。就像如果仅通过边界框选择单词一样,我想获取该文本并将其转换为文本文件。请查看我的代码并进行一些审查,以便我可以实现该功能。

到目前为止,我已经将 PDF 文件转换为在文本上带有边框的图像。

import numpy as np
import csv
import io
from PIL import Image
import pytesseract
from wand.image import Image as wi
from pytesseract import Output
import cv2

pdf = wi(filename="samplecompany.pdf", resolution=100)
pdfImg = pdf.convert('jpg')
j = 1
for img in pdfImg.sequence:
    page = wi(image=img)
    page.save(filename=str(j)+".jpg")
    img1 = cv2.imread(str(j)+".jpg")

    d = pytesseract.image_to_data(img1, output_type=Output.DICT)
    n_boxes = len(d['level'])
    print(n_boxes)
    for i in range(n_boxes):
        (x, y, w, h) = (d['left'][i], d['top']
                        [i], d['width'][i], d['height'][i])
        print((x, y, w, h))
        cv2.rectangle(img1, (x, y), …
Run Code Online (Sandbox Code Playgroud)

python ocr opencv python-tesseract

5
推荐指数
1
解决办法
8026
查看次数

有没有办法在 venv/web 服务器中安装 Tesseract OCR?

我制作了一个执行 OCR 功能的 Python 脚本,然后回收了该脚本并使用 Flask 制作了一个 Web 应用程序。Web 应用程序及其库位于 virtualenv 中,但该应用程序使用操作系统 (Windows) 中安装的 Tesseract OCR。我一直在本地服务器上对其进行测试。现在是时候进行部署了,我不知道如何在 venv 中安装 Tesseract 或者是否可以将其安装在服务器上。我不知道我说的是否有道理,但我很失落,我将非常感谢任何有关此事的帮助。

先感谢您。

python tesseract python-tesseract

5
推荐指数
1
解决办法
3838
查看次数

OCRmyPDF 找不到 Leptonica 库

我在 conda 环境中安装了 OCRmyPDF 包,并一直与 pytesseract 一起使用。当我运行命令“ocrmypdf --help”时,我收到以下错误:

[WinError 2] The system cannot find the file specified
Traceback (most recent call last):
  File "c:\users\{user}\anaconda3\envs\tesseract\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\{user}\anaconda3\envs\tesseract\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\{user}\Anaconda3\envs\tesseract\Scripts\ocrmypdf.exe\__main__.py", line 4, in <module>
  File "c:\users\{user}\anaconda3\envs\tesseract\lib\site-packages\ocrmypdf\__init__.py", line 10, in <module>
    from ocrmypdf import helpers, hocrtransform, leptonica, pdfa, pdfinfo
  File "c:\users\{user}\anaconda3\envs\tesseract\lib\site-packages\ocrmypdf\leptonica.py", line 44, in <module>
    raise MissingDependencyError(
ocrmypdf.exceptions.MissingDependencyError:
        ---------------------------------------------------------------------
        This error normally occurs when ocrmypdf can't find the Leptonica …
Run Code Online (Sandbox Code Playgroud)

python ocr tesseract python-tesseract

5
推荐指数
0
解决办法
897
查看次数

错误:tesseract 未安装或不在您的 PATH 中

我是 pytesseract 和 OCR 的新手,我在互联网上搜索到这是用于从图像中提取文本的工具。但是,我对此工具一无所知。现在,我遇到了这个错误:tesseract 未安装或不在您的路径中。有关详细信息,请参阅自述文件。
我不知道如何解决这个问题,我尝试了在互联网上找到的各种解决方案,但遗憾的是没有奏效。

错误代码:

TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.
Run Code Online (Sandbox Code Playgroud)

对应代码:

!pip install tesseract
import pytesseract
import cv2
from PIL import Image
import matplotlib.pyplot as plt
img = cv2.imread("meter.jpg")
data = pytesseract.image_to_string(img)
print(data)
# plt.imshow(img)
Run Code Online (Sandbox Code Playgroud)

首先告诉你我正在使用 Jupyterhub。事实上,我在我大学的 jupyterhub 上注册了一个帐户。此外,我在网上搜索了可以使用“cmd”并解决问题的地方。如果是这样,请告诉我该怎么做,否则我必须联系大学管理员来解决这个问题。任何帮助表示赞赏!

python tesseract python-tesseract

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

如何在 Databricks 上安装 Tesseract OCR

我正在尝试在 databrick python 笔记本上运行以下脚本:

pip install presidio-image-redactor
pip install pytesseract
python -m spacy download en_core_web_lg

from PIL import Image
from presidio_image_redactor import ImageRedactorEngine
import pytesseract

image = Image.open("images/ImageData.PNG")

engine = ImageRedactorEngine()

redacted_image = engine.redact(image, (255, 192, 203))
Run Code Online (Sandbox Code Playgroud)

运行最后一行后,我收到以下错误:

TesseractNotFoundError:tesseract 未安装或不在您的路径中。

我错过了什么吗?

tesseract python-tesseract databricks azure-databricks

5
推荐指数
1
解决办法
2506
查看次数