Javatpoint Logo
Javatpoint Logo

Get Image Data in Python

Python is a popular programming language. Guido Van Rossum created and released it in 1991 at CWI (Centrum Wiskunde& Informatica) Netherlands. Python is a general-purpose, high-level programming language, and also Python is dynamic.

Python is simple and easy to learn, it is platform-independent, and also it is free and open source. It has rich liberty support, and also it is embeddable and extensible.

When we want to extract text from images, it is a prevalent task in business units that extract information from invoices, receipts, and other areas.

An electronic computer-based approach is an optical character recognition used for converting images into text into machine-encoded text, extracted and used in text format.

To know much about it, we need to know three terms.

  1. Tesseract
  2. pytesseract
  3. pillow

Tesseract is an open-source OCR (Optical character recognition) engine that will allow for extracting text from images.

For using tesseract in Python, we also need the pytesseract library, a wrapper for the tesseract engine.

Now we are working with images, so we also need the pillow library that will add image processing capabilities to Python.

At first, we search for the Tesseract installer for our operating system. When our OS is windows, we can find the latest version of the Tesseract installer, and we need to download the ".exe" file and install it on our computer.

If we do not have the python libraries installed, open the cmd or command prompt on the windows operating system and install them using the following program.

Python PIL

PIL stands for python image library, providing the python interpreter with image editing capabilities. The module "image" will give a class with the same name used to represent a PIL image. The module will also provide many functions for loading images from files and creating new images.

To return the contents of the image, we use getdata() as it will produce an image in sequence object which contains values in pixels. The sequence object is flattened, so values for line one will follow directly after the values of line zero, and it continues.

NOTE: The sequence object will return by this method which is an internal PIL data type that only supports certain sequence operations. Converting it into a normal sequence like printing, we use list (im.getdata()).

Let us discuss the parameters.

Band: It will tell what band it will return to. It is the default for returning all bands. For returning a single band, pass in the index value that is 0 to get the "R" band from an "RGB" image.

Returns type: It is a sequence-like object.

Reading Images in Python

Regarding image processing, Python programming language will support the most powerful tools. We now see how to process the images using libraries like ImageIO, OpenCV, Matplotlib, PIL, etc.

  • Using ImageIO: ImageIO is a library in Python which will provide a simple interface for reading and writing a wide range of image data involving animated images, animated videos, and scientific formats. It is cross-platform; it will run on Python 3.7+ and is easy to install. It is one of the alternatives to scipy.misc.imread and is also used internally by libraries like scikit-image for loading the images.
  • Using OpenCV: OpenCV is called Open Source Computer Vision, a computer vision library containing various functions for performing operations on pictures or videos. Intel developed it and, after that, maintained it through Itseez. It is a cross-platform library available in multiple programming languages such as Python, C++, etc.
  • Using MatplotLib: Matplotlib is a library with visualizing capability in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed for working with the broader SciPy stack. John Hunter introduced it in the year 2002. Matplotlib will come with a variety of plots. The plots will help us to understand trends and patterns and make correlations. They are typical instruments for quantitative reasoning information.
  • Using PIL: PIL is termed as Python Imaging Library that will provide the python interpreter with editing the image with capabilities. Fredrik Lundh and many other contributors developed it. Pillow is a friendly PIL and an easy-to-use library that Alex Clark and other contributors develop.

How to Extract Values in Pixels of an Image in Python

When we want to extract each value in pixels, we use them to locate the simple objects in an image. As we know, images are made up of pixels, and when these values are extracted using Python, we obtain four values: R, G, B, and A these are the RGBA colours with Red, Green, and Blue, accordingly, an alpha value.

In Python programming language, we will use a library known as PIL, a Python imaging library. The modules in this library are used for processing an image and support many file formats like png, jpg, gif, etc. It consists of more functions for opening, extracting the data, changing properties, creating new images and many more.

PIL is installed with Python 2.7 in Ubuntu and should be installed manually for windows. The remaining operating systems with Python 2.7 or more can download from here.

The pixel value is extracted and stored in a list. We can also use the IDLE shell, but it takes more time to extract the values, so it is considered completed using the command line interface. There is a procedure for extracting the values, and it is:

From above, myfile is the name of the image to be read and gives the appropriate format of the file. If it is in a jpeg, then provide it as a myfile.jpeg.

->We use an image function module called 1getdata() for extracting the pixel values. It will scan the image from left to right horizontally, starting at the top-left corner. The values produced from each pixel are then added to the list. At last, we get a list with each pixel value as a set of four values: Red, Green, and Blue according to alpha value.

>>>pix_val = list(im.getdata())

From above, pix_val is the list which contains the pixel values printed for seeing these values, but the list we got is a list of sets, and sometimes, it is needed to flatten the list. For example, if the list is like [(1, 2, 3, 4), (3, 4, 5, 6)...], and the list that is needed is [1, 2, 3, 4, 3, 4, 5, 6...] then the command for flattening the list is:

>>>pix_val_flat = [x for sets in pix_val for x in sets]

The above command line will extract each element of each set in the pix_val, and all the elements are stored in pix_val_flat. So, it can be compiled into a script or made into a function used in any image processing projects afterwards.

PIL is one of the methods for processing the image. pygames or numpy are also used with their respective modules for processing images.

Working with Image Pixels in OpenCV

In the vision of a computer, pixels are essential attributes of the images. They are mathematical values representing the colour intensity of light in a specific space in an image and are the minor data units in an image.

To obtain the total number of pixels in an image is the product of the height, width and channels.

The images in OpenCV are read as Numpy arrays of pixel values; it will be possible to get and process regions of an image as represented by the pixels of those regions by using slicing operations.

The slicing operations are used for retrieving a subset of sequences such as lists, tuples and arrays. They are used to get the pixel values of regions of an image for processing like editing, formatting and cropping.

Program to Get a subset of a List Using a Slicing Operation

Output

Get Image Data in Python

We need to notice that we have used index values for slicing the list of letters. For example, pass the start index of 1, which is the index for the second letter in the list, and four will return as a slice of the list from the second to fourth values.


Next TopicIPython Display





Youtube For Videos Join Our Youtube Channel: Join Now

Feedback


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Preparation


Trending Technologies


B.Tech / MCA