Meet ContextCheck: Our Open-Source Framework for LLM & RAG Testing! Check it out on Github!

in Blog

March 06, 2020

The Use Of OpenCV In Image Processing – 5 Examples

Author:




Artur Haponik

CEO & Co-Founder


Reading time:




9 minutes


As you know from our previous blog posts, image processing and computer vision alike are immensely important when it comes to data visualization and interpretation. Both of these disciplines are widely used in machine learning and artificial intelligence in general. Today, however, we want to primarily focus on the OpenCV library, which, in many instances, is a basis for the AI image processing and computer vision apps and programs.

Today, image processing and computer vision are literally everywhere. To broaden your knowledge of this subject, we encourage you to read this article. As it turns out, the OpenCV library serves as a base for a number of projects and programs revolving around image processing and computer vision. It’s a very popular solution, commonly used in image processing, that’s why we are going to examine this issue and see some of the OpenCV examples.

Computer Vision and Image Processing – What do you have to know?

Generally speaking, image processing is all about transforming (processing) the input image file. Typically, it’s done with the usage of specific software, to name just Adobe Photoshop or GIMP. Some of these transformations are done manually (by the graphic, for instance, adding new layers) or automatically (by the built-in algorithm, for example, sharpening).

Where can you find applications of image processing? One of the most outstanding examples is medicine. We have written a number of articles about AI in healthcare. Just browse through our blog section to find them. Currently, image processing in medicine is used in order to enhance the medical image’s quality and perceptibility. As a result of this image enhancement process, a physician can make a quicker and more accurate diagnosis, simply put, because they see a more clear picture.

On the other hand, computer vision works entirely differently. Here, nothing happens to the file itself. This is due to the goal, which is to interpret the image and its contents. One of the most significant usages of computer vision is in the motor industry. Computer vision is used here as an assistant for the driver that scans the vehicle’s surroundings and analyzes them for potential threats, obstacles, and other relevant situations.

working on laptop

Before you begin

The thing is, you can’t just start working on your computer vision/image processing program. You have to prepare data (i.e. files) first because when data is in its raw format, it’s rarely useful. Consider an example. Let’s say that you own a parking area, and you want to build a machine learning license plate recognition system.

Your very first step would be to gather hundreds of license plate pictures for the ML algorithm to learn from. Naturally, you can download them from the web, but the vast majority of the downloaded images would not be of the same size and quality. Some of them would contain only a license plate, and some of them the entire car, and maybe some elements of the background even. So before you can upload them to your app for training, you have to prepare them–in other words, unify them.

Then, you need a library, which serves as a base for your future work. Generally speaking, a CV library provides the necessary tools for processing and analyzing images. That’s including recognizing objects in pictures (such as aforementioned license plates), tracking objects, converting images, and identifying common elements in various image files[1].

What is the OpenCV library?

To begin with, the OpenCV library is an open-source (hence its full name: Open Source Computer Vision[2]) computer vision and machine learning software library. As we can read on its website, the OpenCV library was built primarily to provide an infrastructure for computer vision applications[3].

According to the aforementioned source, the library has over 2,500 optimized algorithms, which include either the computer vision and machine learning algorithms. These algorithms can be used by companies and single programmers to:

  • Detect and recognize faces (so-called face recognition)
  • Identify objects
  • Classify human actions in videos
  • Track camera movements
  • Track moving objects
  • Extract 3D models of objects
  • Find similar images from an image database
  • Follow eye movements
  • Recognize scenery
  • Establish markers to overlay it with augmented reality

It’s a very impressive list of functions and applications, isn’t it? No wonder that OpenCV library has 47,000+ professionals using it and an estimated number of downloads exceeding 18 million! The owner of this library brags that a multitude of big players uses it, to name just Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota (remember the motor industry example?), and hundreds of the AI-related start-up companies.

With this introduction done, we can take a look at some of the OpenCV examples of usage in the real world, and analyze the OpenCV image processing cases.

OpenCV Library, face recognition

Examples of using OpenCV in image processing

We are going to examine the five most significant use cases, where the OpenCV library plays a key role. As you already know, image processing is all about modifying or improving a given image. Sometimes in order to speed up work, sometimes in order to harness it into the computer vision system. As it turns out, image processing techniques are used on many occasions in computer vision. That’s why both these disciplines are closely interlinked.

Image enhancement

Depending on the use case, there are various methods available within OpenCV, which could be applied to enhance your images. For instance, the OpenCV algorithms can help you in[4]:

  • Histogram equalization[5]. It’s a technique used to improve contrast in images. This method usually increases the contrast level in images, particularly when a picture has many areas of lower local contrast, and you want them to gain a higher contrast in order to make them more readable.
  • Image noise reduction. Generally speaking, image noise is a random variation of brightness or color information in images. In most cases, not only is it useless, but it also deteriorates the image. It originates from the camera itself and usually happens when pictures are taken in dark places, and not enough light reaches the object-glass. The OpenCV library has appropriate algorithms to help you with the image denoising.

Information extraction

Sometimes, you need to extract some information from your image, for instance, available camera functions, flash use, aperture, zoom position, and quality settings. In many cases, it’s done to analyze a given picture thoroughly. Moreover, from the metadata information included in the picture, you can find information about the geo-location of the image, especially when the picture was taken from a smartphone. With the OpenCV algorithms, any information extraction can be done with ease!

algorithms, computer, programming, code

Text extraction

Let’s get back to our parking space example. Let’s say that the camera in your parking area can scan the license plate of every car that enters your car park. To make it useful, you need to extract the text (which in this case is the combination of letters and digits) from each plate. The text extraction methods are applied with the help of machine learning algorithms.

The extracted text is collected from the image and transferred to the given application or a specific file type. This way, you can easily send them to your ticket machine software. As a result, your customers can go to the ticket machine, choose their license plate number, and pay for their stopover.

Background removal

This finds applications, particularly in the eCommerce sector. Naturally, every online store wants to present their products as favorably as possible. That’s why every picture before it can be published online, has to go through a background removal stage. Within this stage, the background is removed and replaced with transparency or solid color (particularly white). As a result, you have a picture where only the product in question is visible, and nothing distracts the viewer. It’s another vital and commonly-used image processing method often done with the assistance of the OpenCV algorithms.

BACKGROUND REMOVAL, ecommerce, sunglasses

Other simple OpenCV in image processing techniques

Last but not least, we have other simple OpenCV image processing techniques. They comprise:

  • Rotating
  • Cropping
  • Resizing and several others

Why are they helpful? One might argue that these processes are so straightforward, they can be easily done even in MS Paint, not to mention more advanced graphic software. And it’s true, these techniques raise no difficulties.

But what happens when you want to resize or rotate 10,000 pictures? It’s a different story, isn’t it? That’s why you want an ML algorithm to do it for you. OpenCV has the ready-made algorithms that will help you speed up this process. Image processing algorithms are not necessarily only about executing complicated and sophisticated processes. In many instances, they do simple corrections or modifications, which are time-consuming when done by hand.

OpenCV in image processing – Conclusion

To sum up, if you’re after image processing, the OpenCV library is your best bet. It’s a multi-purpose, open-source platform that can be used in almost any image-related endeavor.

However, if you are more interested in cooperation with an experienced company that has all the AI, ML, and business intelligence at their fingertips–we have to say, you’re in the right place! Addepto is an AI consulting company, ready to help you with your challenges and projects. Whatever you need help with–drop us a line, and let’s talk! Even if you don’t know yet if AI is a solution for you–we will eagerly guide you through the intricacies of Artificial Intelligence.

computer vision solutions baner

References

[1] Svitla Team. Overview of modern computer vision tools. Nov 12, 2019. URL: https://svitla.com/blog/overview-of-modern-computer-vision-tools. Accessed Mar 6, 2020.
[2] Wikipedia. OpenCV. URL: https://en.wikipedia.org/wiki/OpenCV. Accessed Mar 6, 2020.
[3] Opencv. About. URL: https://opencv.org/about/. Accessed Mar 6, 2020.
[4] ArIES, IIT Roorkee. Image Processing with OpenCV. Aug 26, 2017. URL: https://medium.com/@ariesiitr/image-processing-with-opencv-45c3a5cefd10. Accessed Mar 6, 2020.
[5] Shreenidhi Sudhakar. Histogram Equalization. Jul 10, 2017. URL: https://towardsdatascience.com/histogram-equalization-5d1013626e64. Accessed Mar 6, 2020.



Category:


Computer Vision