Optical Character Recognition (OCR) is a conversion of typed or handwritten letters on an image into the machine encoded texts. There are several methods and libraries that can be used to read text on image.
In
this tutorial, we'll briefly learn how to read letters in an image by using the Tesseract and PyOCR in Python. The
tutorial
covers:
- Installing Tesseract and PyOCR
- Reading texts on image
- Source code listing
Installing Tesseract and PyOCR
My installation goes on MacBook and you can find similar installation methods on other OSs. Here, we install Tesseract and python PyOCR library.
% brew install tesseract
% pip install pyocr
If you want to use the Tesseract directly to read the texts on your image, you can run it as below. It parses the texts on your image and shows them on your terminal output.
% tesseract /your/path/image.png stdout
After installing Tesseract and PyOCR, we'll load the required libraries for this tutorial.
from PIL import Image
import pyocr
import pyocr.builders
We also need image file that contains texts and I prepared below image.
Next, we'll get available tools and languages.
tools = pyocr.get_available_tools()
print(len(tools))
tool = tools[0]
print("Tools: ", tool.get_name())
print("Available languages: ", tool.get_available_languages())
1
Tools: Tesseract (sh)
Available languages: ['eng', 'osd', 'snum']
We'll load image file with PIL library's Image. Then we'll parse text by using the image_to_string() function of the tools object. Finally, we'll print the output text.
path = '/my/image/path/image_to_read.png'
img = Image.open(path)
txt = tool.image_to_string(
img,
lang='eng',
builder=pyocr.builders.TextBuilder()
)
print(txt)
Presentation Subtitle
CAN YOU READ IT
ONE TWO THREE
Title
In this tutorial, we've briefly learned how to read text on image file by using Tesseract and PyOCR tools. Full source code is listed below.
Source code listing
from PIL import Image
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
print(len(tools))
tool = tools[0]
print("Tools: ", tool.get_name())
print("Available languages: ", tool.get_available_languages())
path = '/my/image/path/image_to_read.png'
img = Image.open(path)
txt = tool.image_to_string(
img,
lang='eng',
builder=pyocr.builders.TextBuilder()
)
print(txt)
Hi, How could I install different languages ?
ReplyDelete