我的问题是关于使用 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格式的表格转换为文本?有什么东西让我逃过一劫吗?
我正在使用魔杖和 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 接口,以便我可以使用这些内存限制技术?
我想获取扫描文档的方向。我看到了这篇文章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) 我不确定这种奇怪的东西或者tesseract-ocr本身是不是我的基础设施.
每当我在单进程环境中使用image_to_stirng时 - tesseract-ocr工作正常.但是当我用gunicorn产生多个工作人员并且所有人都开始使用ocr读取工作时 - tesseract-ocr开始阅读非常差(而不是来自性能老虎钳,但不是精确的老虎钳).即使在负载完成后 - tesseract也没有相同的准确性.我需要重新启动所有工人才能让tesseract再次运转良好.
这太超级怪了.也许有人已经过期或听说过这个问题?
我正在使用 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) 
我正在尝试通过图像上的边界框获取选定的文本。就像如果仅通过边界框选择单词一样,我想获取该文本并将其转换为文本文件。请查看我的代码并进行一些审查,以便我可以实现该功能。
到目前为止,我已经将 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) 我制作了一个执行 OCR 功能的 Python 脚本,然后回收了该脚本并使用 Flask 制作了一个 Web 应用程序。Web 应用程序及其库位于 virtualenv 中,但该应用程序使用操作系统 (Windows) 中安装的 Tesseract OCR。我一直在本地服务器上对其进行测试。现在是时候进行部署了,我不知道如何在 venv 中安装 Tesseract 或者是否可以将其安装在服务器上。我不知道我说的是否有道理,但我很失落,我将非常感谢任何有关此事的帮助。
先感谢您。
我在 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) 我是 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”并解决问题的地方。如果是这样,请告诉我该怎么做,否则我必须联系大学管理员来解决这个问题。任何帮助表示赞赏!
我正在尝试在 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 未安装或不在您的路径中。
我错过了什么吗?
python-tesseract ×10
python ×9
tesseract ×8
ocr ×3
opencv ×2
amazon-ec2 ×1
databricks ×1
gunicorn ×1
imagemagick ×1
wand ×1