我正在使用 tesseract(通过 python 包装器)来从文档中提取文本。这些文档不包含任何图像或表格,仅包含文本。
是否有任何选项可以将标题/标题与文本区分开来?理想情况下,我希望能够拥有类似于 xml 树的东西,而不是完整的字符串链(我不需要查看文档布局)。
我找到了一些似乎能够提供帮助的第三方工具,但我想知道是否可以直接从 tesseract 中完成。
问题
我试图用 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) 我在 Windows 10 中使用 Python 3.6 并且已经安装了Pytesseract,但我在代码中发现了Tesserocr,顺便说一下我无法安装。有什么不同?
我正在尝试在 Google App Engine 上部署一个也具有 OCR 功能的应用程序。我使用 homebrew 下载了 tesseract,并使用pytesseractPython 进行包装。OCR 功能在我的本地系统上有效,但当我将应用程序上传到 Google App Engine 时却不起作用。
我tesseract从 usr/local/cellar/tesseract 复制文件夹并粘贴到我的应用程序的工作目录中。我将超正方文件和pytesseract文件上传到应用程序引擎。我已经指定了 tesseract 的路径,os.getcwd()以便pytesseract可以找到它。然而,这是行不通的。App Engine 找不到要执行的文件,因为它们不在同一目录 ( os.getcwd()) 中。
代码来自 pytesseract.py
cmda = os.getcwd()
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
def find_all(name, path):
result = []
for root, dirs, files in os.walk(path):
if name in files:
result.append(os.path.join(root, name))
return result
founds = find_all("tesseract",cmda)
tesseract_cmd …Run Code Online (Sandbox Code Playgroud) 我使用 tesseract-OCR 从扫描图像中提取文本,对于少数图像,由于分辨率低而无法正确识别文本,并且产生的输出是一些不相关的字符。
应用技术:
将 dpi 增加到 300。
opencv 中的图像预处理技术。
在 opencv 中使用 dnn_superres 放大图像
降噪技术。
参考 git repos,其中使用深度学习开发了超分辨率算法模型。
通过训练 tessdata 提高 tesseract-ocr 质量。
参考链接:
示例图像:
python中有没有什么简单的方法可以在不使用任何深度学习模型的情况下改进文本。
如何使用tesseract来提取数学方程?
在阅读下面给出的图像时:
使用后:
img = cv2.imread(IN_PATH+'sample1.png')
pytesseract.image_to_string(img)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
'The value of 7/8144 is\n- (a) 20.2 (b) 20.16\n(c) 20.12 (d) 20.4'
Run Code Online (Sandbox Code Playgroud)
对于旧版本,我可以使用
config='-l eng + equ'
pytesseract.image_to_string(img,config=config)
Run Code Online (Sandbox Code Playgroud)
但equ中不再支持tesseract 4.0+。我也有equ.traineddata文件,但我不知道它是如何工作的,当我尝试将其粘贴到文件中时,/usr/share/tesseract-ocr/4.00/tessdata/它抛出了一个无法复制的错误。
请帮助我如何提取一些带有简单数学符号的文本。
ocr tesseract image-processing computer-vision python-tesseract
我正在使用 pytesseract 尝试检测图像中的某些字符串模式。据我了解,正确使用user patterns将有助于 pytesseract 更好地扫描某种字符串模式。但是,我不知道如何让它发挥作用。这个问题有助于澄清要使用我必须使用config参数 (pytesseract.pytesseract.image_to_string(image, config='),但我不知道如何将其应用于我的案例。
我正在尝试找到这个正则表达式模式:\d{5}\.?\d{5} \.?\d{6} ?\d{5}\.?\d{6} ?\d ?\d{14}。我应该如何应用它来user patterns帮助 tesseract 进行更好的 OCR 扫描?
我已经在我的 venv 中安装了 pytesseract 模块,并且想要从德语文件中提取文本
从 pytesseract执行此脚本并将语言设置为德语
import cv2
import pytesseract
try:
from PIL import Image
except ImportError:
import Image
print(pytesseract.image_to_string(Image.open('test.jpg')))
print(pytesseract.image_to_string(Image.open('test.jpg'), lang='ger'))
Run Code Online (Sandbox Code Playgroud)
这给了我
raise TesseractError(proc.returncode, get_errors(error_string))
pytesseract.pytesseract.TesseractError: (1, 'Tesseract Open Source OCR Engine v3.05.00dev with Leptonica
Error opening data file C:\\Program Files (x86)\\Tesseract-OCR/tessdata/ger.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language \'ger\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')
Run Code Online (Sandbox Code Playgroud)
我在 [tessdoc/Data-Files] ( https://github.com/tesseract-ocr/tessdoc/blob/master/Data-Files.md )上找到了语言数据 …
TL;DR:如何安装以与inside intessdata_best一起使用pytesseractcondaUbuntu 18?
我已经使用pytesseract内部conda环境相当多了,但需要提高准确性,我发现这可以tessdata_best为您提供最佳准确性。我如何安装和使用该版本?我正在使用Ubuntu 18并且必须与pytesseract.
我已经tesseract安装了/usr/share/tesseract-ocr/,里面只有 1 个tessdata。
我是否需要通过将其复制到旁边的tessdata_best目录来从 github获取它?/usr/share/tesseract-ocr/tessdata
即使如此,如果我想使用tessdata-best,我必须使用什么?我需要更改configas 吗--oem 0/1/2/3?
第三件事也是最后一件事是我的language.trainedata文件位于/home/deshwal/anaconda3/envs/py36/share/tessdata/eng.traineddata. 我也需要粘贴tessdata_best到这个位置吗?因为当我尝试更改语言目录时,它给我错误如下:
/home/deshwal/anaconda3/envs/py36/share/tessdata/equ.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'equ\' Tesseract couldn\'t load any languages! Could not initialize tesseract.'
我正在开发一个项目,需要我在 docker 容器上运行 pytesseract,但无法将 tesseract 安装到容器上,我也不知道 pytesseract 的文件路径应该是什么
我的 Dockerfile:
FROM python:3
ENV PYHTONUNBUFFERED=1
RUN apt-get update && apt-get install -y --no-install-recommends \
bzip2 \
g++ \
git \
graphviz \
libgl1-mesa-glx \
libhdf5-dev \
openmpi-bin \
wget \
python3-tk && \
rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
ENV QT_X11_NO_MITSHM=1
Run Code Online (Sandbox Code Playgroud)
我的 pytesseract 代码:
path_to_tesseract = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
pytesseract.tesseract_cmd = path_to_tesseract
img=cv2.imread(fpath)
img=cv2.resize(img,None,fx=2,fy=2, interpolation=cv2.INTER_CUBIC)
text=pytesseract.image_to_string(img)
Run Code Online (Sandbox Code Playgroud) python-tesseract ×10
python ×8
tesseract ×6
ocr ×5
image ×2
opencv ×2
python-3.x ×2
docker ×1
gcloud ×1
tesseract.js ×1
windows ×1