标签: python-tesseract

使用Gimp而不是我的Python代码手动预处理Image时,使用Tesseract-OCR进行文本识别的图像更好

我正在尝试用Python编写代码,用于使用Tesseract-OCR进行手动图像预处理和识别.

手动过程:
为了手动识别单个图像的文本,我使用Gimp预处理图像并创建TIF图像.然后我将它喂给Tesseract-OCR,它正确识别它.

使用Gimp预处理图像我做 -

  1. 将模式更改为RGB /灰度
    菜单 - 图像 - 模式 - RGB
  2. 阈值
    菜单 - 工具 - 颜色工具 - 阈值 - 自动
  3. 将模式更改为索引
    菜单 - 图像 - 模式 - 索引
  4. 调整大小/缩放到宽度> 300px
    菜单 - 图像 - 缩放图像 - 宽度= 300
  5. 保存为Tif

然后我喂它tesseract -

$ tesseract captcha.tif output -psm 6
Run Code Online (Sandbox Code Playgroud)

而且我一直都能得到准确的结果.

Python代码:
我试图使用OpenCV和Tesseract复制上述过程 -

def binarize_image_using_opencv(captcha_path, binary_image_path='input-black-n-white.jpg'):
    im_gray = cv2.imread(captcha_path, cv2.CV_LOAD_IMAGE_GRAYSCALE)
    (thresh, im_bw) = cv2.threshold(im_gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    # although thresh is used below, gonna pick something …
Run Code Online (Sandbox Code Playgroud)

python opencv tesseract image python-tesseract

6
推荐指数
1
解决办法
6298
查看次数

没有这样的文件或目录: 'tesseract': 'tesseract' 即使在 pytesseract.py 中指定了在哪里找到 tesseract

所以我一直在研究这个问题一段时间,而其他人也有类似的问题,但对我没有任何帮助:

我正在尝试将 pytesseract 用于一个项目,并将其安装在 User/Environments/testEnv/lib/python3.6/site-packages/pytesseract/

我在下面安装了tesseract usr/local/bin

我已经进入Users/User/Environments/testEnv/lib/python3.6/site-packages/pytesseract/pytesseract.py并改变tesseract_cmd = 'tesseract'tesseract_cmd = '/usr/local/bin/tesseract'如下建议:OSERROR:[错误2]没有这样的文件或目录使用pytesser

这没有用。我试图运行这个:

try:
    import Image
except ImportError:
    from PIL import Image
import pytesseract

img = Image.open('screenshot.png')
img.load()
i = pytesseract.image_to_string(img)
print (i)
Run Code Online (Sandbox Code Playgroud)

我明白了:

Traceback (most recent call last):
  File "/Users/User/Environments/testEnv/testTess.py", line 26, in <module>
    i = pytesseract.image_to_string(img)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pytesseract/pytesseract.py", line 122, in image_to_string
    config=config)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pytesseract/pytesseract.py", line 46, in run_tesseract
    proc = subprocess.Popen(command, stderr=subprocess.PIPE)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session) …
Run Code Online (Sandbox Code Playgroud)

python tesseract python-3.x python-tesseract

6
推荐指数
1
解决办法
5110
查看次数

如何在anaconda上为python安装tesseract

有谁知道如何在 Anaconda 上为 python 安装 tesseract?我有一个windows系统。anaconda 网站提供了 linux 系统的安装:

conda install -c auto pytesseract 
Run Code Online (Sandbox Code Playgroud)

Windows 系统是否需要进行任何更改?

python anaconda python-tesseract

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

ModuleNotFoundError:没有名为“pytesseract”的模块

我在 Windows 10 上使用 Anaconda Navigator 1.7.0,我创建了一个名为“venv”的虚拟环境,并在其中安装了 Python 版本 3.5.2 以及 selenium、fuzzywuzzy 和其他模块。

除了 pytesseract 之外,一切都工作正常。

我的Python脚本:

import pytesseract

from PIL import Image

im =Image.open("C:\\Users\\stan\\Desktop\\sample.jpg")
text = pytesseract.image_to_string(im, lang ='eng')
print(text)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\stan\MyPythonScripts\tess11.py", line 1, in <module>
    import pytesseract
ModuleNotFoundError: No module named 'pytesseract'
Run Code Online (Sandbox Code Playgroud)

我使用 pip install 安装所有模块。

到目前为止我为解决这个问题所采取的步骤:

  1. 我使用虚拟环境pip install pytesseract(venv)在虚拟环境中安装了 pytesseract,
  2. 我查看了“site-packages”文件夹(..\Local\Continuum\anaconda3\envs\venv\Lib\site-packages),我确实看到“pytesseract”文件夹确实与“pytesseract-0.2.0”一起存在于其中.dist-info”。请注意,这也是我可以看到“selenium”和其他运行完美的模块的文件夹。
  3. 我安装 Pillow 只是为了确定一下。

  4. 我在网上研究了同样的错误,找到了解决方案,指出我应该pip install pytesseract检查 pytesseract 是否存在于我尝试运行的虚拟环境的“站点包”中,这两个步骤我都已经采取了。

  5. 我还安装了 tesseract-OCR 版本 3.05.01,默认情况下位于“C:\Program Files (x86)”

  6. 如果我尝试在“ModuleNotFoundError”下方再次运行 pip …

python python-3.x anaconda python-tesseract

6
推荐指数
0
解决办法
6844
查看次数

在Python中从图像中提取希伯来语文本

我想从图像中提取希伯来语文本。

\n\n

我尝试过使用 pytesseract,但它会混淆一些字母(例如 ' 而不是 \xd7\x99 或 \xd7\xa0 而不是 \xd7\x9b)

\n\n

我尝试对图像进行一些操作(例如调整大小、消除噪声和二值化),这有一点帮助,但仍然出现很多错误。

\n\n

我花了几个小时寻找更好的文本提取工具但找不到。

\n\n

所以这是我的问题:

\n\n

A) 有没有我可以使用但我可能错过的工具?

\n\n

B) 如果没有,创建我自己的步骤是什么?

\n\n

预先感谢\nAmichai

\n

python ocr hebrew computer-vision python-tesseract

6
推荐指数
1
解决办法
5624
查看次数

在 Tesseract 中保留空间

我有一个图像文件,其中包含一些由制表符(2 个空格)分隔的文本。但是当我从这个图像文件中提取文本时,我总是在两列之间得到一个空格。示例示例:

图片:

col-a    col-b    col-c
Run Code Online (Sandbox Code Playgroud)

期望的输出:

col-a    col-b    col-c
Run Code Online (Sandbox Code Playgroud)

但我得到以下信息:

col-a col-b col-c
Run Code Online (Sandbox Code Playgroud)

我正在使用 pytesseract.image_to_string(Python 模块)将图像转换为文本

python python-tesseract

6
推荐指数
1
解决办法
4391
查看次数

带有 Tesseract 的空字符串

我正在尝试从一个大文件中读取不同的裁剪图像,并且我设法读取了其中的大部分图像,但是当我尝试使用 tesseract 读取它们时,其中一些返回空字符串。

用tesseract读取的字符串

代码只是这一行:

pytesseract.image_to_string(cv2.imread("img.png"), lang="eng")
Run Code Online (Sandbox Code Playgroud)

有什么我可以尝试阅读此类图像的方法吗?

提前致谢

编辑: 在此处输入图片说明

python ocr opencv tesseract python-tesseract

6
推荐指数
1
解决办法
6190
查看次数

如何从图像中提取点文字?

我正在做我的学士学位期末项目,我想用 python 创建一个用于瓶子检查的 OCR。我需要一些有关图像文本识别的帮助。我是否需要以更好的方式应用 cv2 操作、训练 tesseract 或者我应该尝试其他方法?

我尝试对图像进行图像处理操作,并使用 pytesseract 来识别字符。

使用我从这张照片中得到的以下代码:

在此输入图像描述

对于这个:

在此输入图像描述

然后是这个:

在此输入图像描述

锐化功能:

def sharpen(img):
  sharpen = iaa.Sharpen(alpha=1.0, lightness = 1.0)
  sharpen_img = sharpen.augment_image(img)
  return sharpen_img
Run Code Online (Sandbox Code Playgroud)

图像处理代码:

textZone = cv2.pyrUp(sharpen(originalImage[y:y + h - 1, x:x + w - 1])) #text zone cropped from the original image

sharp = cv2.cvtColor(textZone, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(sharp, 127, 255, cv2.THRESH_BINARY)

#the functions such as opening are inverted (I don't know why) that's why I did opening with MORPH_CLOSE parameter, dilatation with …
Run Code Online (Sandbox Code Playgroud)

python ocr opencv image-processing python-tesseract

6
推荐指数
1
解决办法
1814
查看次数

如何通过PIL和pytesseract使图像更具对比度,灰度然后准确地获得所有字符?

请在此处下载附件并将其另存为/tmp/target.jpg

在此处输入图片说明
您可以看到0244Rjpg,i中包含以下python代码提取字符串:

from PIL import Image
import pytesseract
import cv2
filename = "/tmp/target.jpg"
image = cv2.imread(filename)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, threshold = cv2.threshold(gray,55, 255, cv2.THRESH_BINARY)
print(pytesseract.image_to_string(threshold))
Run Code Online (Sandbox Code Playgroud)

我得到的是

0244K
Run Code Online (Sandbox Code Playgroud)

正确的字符串是 0244R,如何使图像具有更高的对比度,灰度,然后使用PIL和pytesseract准确地获得所有字符?这是生成图像的网页:

http://www.crup.cn/ValidateCode/Index?t=0.14978241776661583

python-3.x python-tesseract

6
推荐指数
1
解决办法
122
查看次数

pytesseract 无法按预期识别文本?

我正在尝试通过 opencv 和 pytesseract 运行一个简单的车牌图像来获取文本,但我无法从中获取任何内容。按照此处的教程进行操作:

https:// Circuitdigest.com/microcontroller-projects/license-plate-recognition-using-raspberry-pi-and-opencv

我在 macbook 上运行,所有东西都安装在 anaconda 中,据我所知,没有错误,但是当我运行代码时,我得到了裁剪后的图像,但没有检测到数字:

(computer_vision) mac@x86_64-apple-darwin13 lpr % python explore.py
Detected Number is: 
Run Code Online (Sandbox Code Playgroud)

代码如下:

import cv2
import numpy as np
import imutils
import pytesseract

img = cv2.imread('plate1.jpg')
img = cv2.resize(img, (620,480))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #convert to grey scale
gray = cv2.bilateralFilter(gray, 11, 17, 17)
edged = cv2.Canny(gray, 30, 200) #Perform Edge detection

cnts = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)
cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:10]
screenCnt = …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision python-tesseract

6
推荐指数
1
解决办法
8893
查看次数