图片转文字 python
Image to text python
我正在使用 python 3.x 并使用以下代码将图像转换为文本:
from PIL import Image
from pytesseract import image_to_string
image = Image.open('image.png', mode='r')
print(image_to_string(image))
我收到以下错误:
Traceback (most recent call last):
File "C:/Users/hp/Desktop/GII/Image_to_text.py", line 12, in <module>
print(image_to_string(image))
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string
config=config)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract
stderr=subprocess.PIPE)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\subprocess.py", line 1220, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
请注意,我已将图像放在 python 所在的同一目录中。此外,它不会在 image = Image.open('image.png', mode='r')
上引发错误,但会在行 print(image_to_string(image))
上引发错误。
知道这里可能出了什么问题吗?谢谢
你的 "current" 目录不是你想的那样。
==> 您可以指定图像的完整路径,例如:
图片 = Image.open(r'C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\image.png', 模式='r')
您必须安装 tesseract
并且在您的路径中可以访问。
According to source、pytesseract
只是 subprocess.Popen
的包装器,tesseract 二进制作为 运行 的二进制。它本身不执行任何类型的 OCR。
相关部分来源:
def run_tesseract(input_filename, output_filename_base, lang=None, boxes=False, config=None):
'''
runs the command:
`tesseract_cmd` `input_filename` `output_filename_base`
returns the exit status of tesseract, as well as tesseract's stderr output
'''
command = [tesseract_cmd, input_filename, output_filename_base]
if lang is not None:
command += ['-l', lang]
if boxes:
command += ['batch.nochop', 'makebox']
if config:
command += shlex.split(config)
proc = subprocess.Popen(command,
stderr=subprocess.PIPE)
return (proc.wait(), proc.stderr.read())
引用另一部分来源:
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'
更改 tesseract 路径的快速方法是:
import pytesseract
pytesseract.tesseract_cmd = "/absolute/path/to/tesseract" # this should be done only once
pytesseract.image_to_string(img)
您还需要下载 tesseract OCR 安装程序。使用此 link 下载设置:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.01.exe
然后,在您的代码中包含这一行以使用 tesseract 可执行文件:
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract'
这是安装 tesseract 的默认位置。
就是这样。我也按照这些步骤 运行 我最后的代码。
希望这会有所帮助。
您可以尝试使用这个 python 库:https://github.com/prabhakar267/ocr-convert-image-to-text
正如软件包的 README 中所述,用法非常简单。
usage: python main.py [-h] input_dir [output_dir]
positional arguments:
input_dir
output_dir
optional arguments:
-h, --help show this help message and exit
请安装以下软件包以从图像中提取文本pnf/jpeg
pip install pytesseract
pip install Pillow
使用 python pytesseract OCR(光学字符识别)是从图像中电子提取文本的过程
PIL 的用途广泛,从简单的图像文件读写到科学图像处理、地理信息系统、遥感等等。
from PIL import Image
from pytesseract import image_to_string
print(image_to_string(Image.open('/home/ABCD/Downloads/imageABC.png'),lang='eng'))
我正在使用 python 3.x 并使用以下代码将图像转换为文本:
from PIL import Image
from pytesseract import image_to_string
image = Image.open('image.png', mode='r')
print(image_to_string(image))
我收到以下错误:
Traceback (most recent call last):
File "C:/Users/hp/Desktop/GII/Image_to_text.py", line 12, in <module>
print(image_to_string(image))
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string
config=config)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract
stderr=subprocess.PIPE)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\lib\subprocess.py", line 1220, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
请注意,我已将图像放在 python 所在的同一目录中。此外,它不会在 image = Image.open('image.png', mode='r')
上引发错误,但会在行 print(image_to_string(image))
上引发错误。
知道这里可能出了什么问题吗?谢谢
你的 "current" 目录不是你想的那样。
==> 您可以指定图像的完整路径,例如: 图片 = Image.open(r'C:\Users\hp\Downloads\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\image.png', 模式='r')
您必须安装 tesseract
并且在您的路径中可以访问。
According to source、pytesseract
只是 subprocess.Popen
的包装器,tesseract 二进制作为 运行 的二进制。它本身不执行任何类型的 OCR。
相关部分来源:
def run_tesseract(input_filename, output_filename_base, lang=None, boxes=False, config=None):
'''
runs the command:
`tesseract_cmd` `input_filename` `output_filename_base`
returns the exit status of tesseract, as well as tesseract's stderr output
'''
command = [tesseract_cmd, input_filename, output_filename_base]
if lang is not None:
command += ['-l', lang]
if boxes:
command += ['batch.nochop', 'makebox']
if config:
command += shlex.split(config)
proc = subprocess.Popen(command,
stderr=subprocess.PIPE)
return (proc.wait(), proc.stderr.read())
引用另一部分来源:
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'
更改 tesseract 路径的快速方法是:
import pytesseract
pytesseract.tesseract_cmd = "/absolute/path/to/tesseract" # this should be done only once
pytesseract.image_to_string(img)
您还需要下载 tesseract OCR 安装程序。使用此 link 下载设置:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.01.exe
然后,在您的代码中包含这一行以使用 tesseract 可执行文件: pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract'
这是安装 tesseract 的默认位置。
就是这样。我也按照这些步骤 运行 我最后的代码。
希望这会有所帮助。
您可以尝试使用这个 python 库:https://github.com/prabhakar267/ocr-convert-image-to-text
正如软件包的 README 中所述,用法非常简单。
usage: python main.py [-h] input_dir [output_dir]
positional arguments:
input_dir
output_dir
optional arguments:
-h, --help show this help message and exit
请安装以下软件包以从图像中提取文本pnf/jpeg
pip install pytesseract
pip install Pillow
使用 python pytesseract OCR(光学字符识别)是从图像中电子提取文本的过程
PIL 的用途广泛,从简单的图像文件读写到科学图像处理、地理信息系统、遥感等等。
from PIL import Image
from pytesseract import image_to_string
print(image_to_string(Image.open('/home/ABCD/Downloads/imageABC.png'),lang='eng'))