Python Language
Optyczne rozpoznawanie znaków
Szukaj…
Wprowadzenie
Optyczne rozpoznawanie znaków polega na zamianie obrazów tekstu na tekst rzeczywisty. W tych przykładach znajdź sposoby używania OCR w pythonie.
PyTesseract
PyTesseract to pakiet Pythona w fazie rozwoju dla OCR.
Korzystanie z PyTesseract jest dość łatwe:
try:
import Image
except ImportError:
from PIL import Image
import pytesseract
#Basic OCR
print(pytesseract.image_to_string(Image.open('test.png')))
#In French
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra’))
PyTesseract jest open source i można go znaleźć tutaj .
PyOCR
Kolejnym modułem do niektórych zastosowań jest PyOCR
, którego kod źródłowy znajduje się tutaj .
Jest także prosty w obsłudze i ma więcej funkcji niż PyTesseract
.
Aby zainicjować:
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
# The tools are returned in the recommended order of usage
tool = tools[0]
langs = tool.get_available_languages()
lang = langs[0]
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.
I kilka przykładów użycia:
txt = tool.image_to_string(
Image.open('test.png'),
lang=lang,
builder=pyocr.builders.TextBuilder()
)
# txt is a Python string
word_boxes = tool.image_to_string(
Image.open('test.png'),
lang="eng",
builder=pyocr.builders.WordBoxBuilder()
)
# list of box objects. For each box object:
# box.content is the word in the box
# box.position is its position on the page (in pixels)
#
# Beware that some OCR tools (Tesseract for instance)
# may return empty boxes
line_and_word_boxes = tool.image_to_string(
Image.open('test.png'), lang="fra",
builder=pyocr.builders.LineBoxBuilder()
)
# list of line objects. For each line object:
# line.word_boxes is a list of word boxes (the individual words in the line)
# line.content is the whole text of the line
# line.position is the position of the whole line on the page (in pixels)
#
# Beware that some OCR tools (Tesseract for instance)
# may return empty boxes
# Digits - Only Tesseract (not 'libtesseract' yet !)
digits = tool.image_to_string(
Image.open('test-digits.png'),
lang=lang,
builder=pyocr.tesseract.DigitBuilder()
)
# digits is a python string
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow