我正在尝试用Python编写代码,用于使用Tesseract-OCR进行手动图像预处理和识别.
手动过程:
为了手动识别单个图像的文本,我使用Gimp预处理图像并创建TIF图像.然后我将它喂给Tesseract-OCR,它正确识别它.
使用Gimp预处理图像我做 -
然后我喂它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) 所以我一直在研究这个问题一段时间,而其他人也有类似的问题,但对我没有任何帮助:
我正在尝试将 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) 有谁知道如何在 Anaconda 上为 python 安装 tesseract?我有一个windows系统。anaconda 网站提供了 linux 系统的安装:
conda install -c auto pytesseract
Run Code Online (Sandbox Code Playgroud)
Windows 系统是否需要进行任何更改?
我在 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 安装所有模块。
到目前为止我为解决这个问题所采取的步骤:
pip install
pytesseract(venv)在虚拟环境中安装了 pytesseract,我安装 Pillow 只是为了确定一下。
我在网上研究了同样的错误,找到了解决方案,指出我应该pip install pytesseract检查 pytesseract 是否存在于我尝试运行的虚拟环境的“站点包”中,这两个步骤我都已经采取了。
我还安装了 tesseract-OCR 版本 3.05.01,默认情况下位于“C:\Program Files (x86)”
如果我尝试在“ModuleNotFoundError”下方再次运行 pip …
我想从图像中提取希伯来语文本。
\n\n我尝试过使用 pytesseract,但它会混淆一些字母(例如 ' 而不是 \xd7\x99 或 \xd7\xa0 而不是 \xd7\x9b)
\n\n我尝试对图像进行一些操作(例如调整大小、消除噪声和二值化),这有一点帮助,但仍然出现很多错误。
\n\n我花了几个小时寻找更好的文本提取工具但找不到。
\n\n所以这是我的问题:
\n\nA) 有没有我可以使用但我可能错过的工具?
\n\nB) 如果没有,创建我自己的步骤是什么?
\n\n预先感谢\nAmichai
\n我有一个图像文件,其中包含一些由制表符(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 模块)将图像转换为文本
我正在尝试从一个大文件中读取不同的裁剪图像,并且我设法读取了其中的大部分图像,但是当我尝试使用 tesseract 读取它们时,其中一些返回空字符串。
代码只是这一行:
pytesseract.image_to_string(cv2.imread("img.png"), lang="eng")
Run Code Online (Sandbox Code Playgroud)
有什么我可以尝试阅读此类图像的方法吗?
提前致谢
我正在做我的学士学位期末项目,我想用 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) 请在此处下载附件并将其另存为/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准确地获得所有字符?这是生成图像的网页:
我正在尝试通过 opencv 和 pytesseract 运行一个简单的车牌图像来获取文本,但我无法从中获取任何内容。按照此处的教程进行操作:
我在 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-tesseract ×10
python ×9
opencv ×4
ocr ×3
python-3.x ×3
tesseract ×3
anaconda ×2
hebrew ×1
image ×1