Get number from image python

If you just want to turn a white-on-black image to black-on-white, that's trivial; it's just invert:

from PIL import Image, ImageOps
img = Image.open['zero.jpg']
inverted = ImageOps.invert[img]
inverted.save['invzero.png']

If you also want to do some basic processing like increasing the contrast, see the other functions in the ImageOps module, like autocontrast. They're all pretty easy to use, but if you get stuck, you can always ask a new question. For more complex enhancements, look around the rest of PIL. ImageEnhance can be used to sharpen an image, ImageFilter can do edge detection and unsharp masking; etc. You may also want to change the format to greyscale [L8], or even black and white [L1]; that's all in the Image.convert method.

Of course you have to know what processing you want to do. One thing you might want to try is playing around with the image in Photoshop or GIMP and keeping track of what operations you do, then looking for how to implement those operations in PIL. [It might be simpler to just use gimp-fu scripting in the first place instead of trying to use PIL…]

In this tutorial we will explore how to extract text from image using Python

Photo by Ian Schneider on Unsplash

Table of Contents

  • Introduction
  • Sample images
  • Extract text from a single image using Python
  • Extract text from multiple images using Python
  • Conclusion

Introduction

Extracting text from images is a very popular task in the operations units of the business [extracting information from invoices and receipts] as well as in other areas.

OCR [Optical Character Recognition] is an electronic computer-based approach to convert images of text into machine-encoded text, which can then be extracted and used in text format.

To continue following this tutorial we will need:

  • Tesseract
  • pytesseract
  • pillow

Tesseract is an open source OCR [optical character recognition] engine which allows to extract text from images.

In order to use it in Python, we will also need the pytesseract library which is a wrapper for Tesseract engine.

Since we are working with images, we will also need the pillow library which adds image processing capabilities to Python.

First, search for the Tesseract installer for your operating system. For Windows, you can find the latest version of Tesseract installer here. Simply download the .exe file and install on your computer.

If you don’t have the Python libraries installed, please open “Command Prompt” [on Windows] and install them using the following code:

pip install pytesseract
pip install pillow

Sample images

In order to continue in this tutorial we will need some images to work with.

Here are the three images we will use in this tutorial:

Image by Author

Image by Author

Image by Author

In this tutorial we will use simple images with text aligned horizontally that don’t require any additional image processing.

Extract text from a single image using Python

Let’s start with extracting text from a single image using Python.

For this example, we will work with the first image provided in the previous section: sampletext1-ocr.png

Here is how the structure of my files look like:

Image by Author

All images are placed in the folder images and the code resides in main.py

The path to the image we need is: images/sampletext1-ocr.png

Another path we need is the path to the tessaract.exe which was created after the installation. On Windows it should reside in: C:\Program Files\Tesseract-OCR\tesseract.exe

Now we have everything we need and can easily extract text from image using Python:

And you should get:

Sample Text 1

Extract text from multiple images using Python

In this section we will explore how to extract text from multiple images using Python.

We know that all images are placed in the folder images and the code resides in main.py

One way of extracting text from every image would be to use the file names of every image and extract text from those images one by one.

But what if we have 100 images in the folder? Using the os library we can access all of the file names in a given directory.

Once we get access to all of the file names in the images folder, we will iterate over them and extract text from each image using Python:

And you should get:

Sample Text 1
Sample Text 2
Sample Text 3

which is exactly the text we have in the images.

Conclusion

In this article we explored how to extract text from a single image and multiple images using Python and Tesseract.

Feel free to leave comments below if you have any questions or have suggestions for some edits and check out more of my Python Programming tutorials.

How do I extract digits from an image in Python?

1 Answer.
Convert image to grayscale and Otsu's threshold..
Perform morph close with a horizontal kernel to merge the numbers into a single contour..
Find contours and filter using a minimum threshold area to filter out the large outer contour..
Sort by largest contour area which should be the desired text contour..

How do I extract specific data from an image in Python?

Now we have everything we need and can easily extract text from image using Python:.
from PIL import Image..
from pytesseract import pytesseract..
img = Image. open[path_to_image].
text = pytesseract. image_to_string[img].
print[text].

How do I print an image number in Python?

Reading the image using opencv 's imread function. img = cv2.imread["LZ3vi.png"] Now we read the image in BGR fashion. [ Not RGB ].
Convert the image to the graysclae. gry = cv2.cvtColor[img, cv2.COLOR_BGR2GRAY] Result will be:.
Apply threshold. thr = cv2.threshold[gry, 0, 255, cv2.THRESH_BINARY_INV][1] Result will be:.

Chủ Đề