Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
What is Computer Vision?
3.
What is OpenCV?
3.1.
History of OpenCV
4.
Applications of OpenCV
5.
Why OpenCV is used for Computer Vision? 
5.1.
Working of OpenCV Python
6.
OpenCV Python Installation
6.1.
Anaconda
6.2.
Windows 
6.3.
Mac
6.4.
Linux
7.
OpenCV Python Basic Operations
7.1.
Read Images and Save Images using Open CV
7.2.
Resize Images using Open CV
7.3.
Rotate Images using Open CV
7.4.
Canny Edge Detection using Open CV
7.5.
Face Detection using OpenCV
7.6.
Capturing Video using OpenCV
8.
Advantages of OpenCV Python
9.
Frequently Asked Questions
9.1.
What is OpenCV Python? 
9.2.
Why is OpenCV used? 
9.3.
What is the full form of OpenCV? 
9.4.
What is OpenCV in image processing? 
10.
Conclusion
Last Updated: Mar 27, 2024
Medium

OpenCV Python Tutorial

Author Kartik Singh
0 upvote
Create a resume that lands you SDE interviews at MAANG
Speaker
Anubhav Sinha
SDE-2 @
12 Jun, 2024 @ 01:30 PM

Introduction

Hello Ninjas, Machine Learning has found its use case everywhere. The rapidly evolving technology encompasses various fields of computer science. One such field is computer vision.

Opencv-python

Computer vision deals with the images and operations related to it. We have the OpenCV Python library to make computer vision-related tasks more efficient. In this article, we will learn about the OpenCV Python library and discuss some related operations.

What is Computer Vision?

Computer Vision is a branch of Artificial Intelligence that enables a machine to sense and interpret the surroundings. Computer vision uses visual modalities to learn from the surroundings. In computer vision, the digital visual content is translated into multi-dimensional data. The data extracted can be used for further research and analysis.

The process of computer vision involves various steps:

  • Acquiring the image/ video from the user.
     
  • Screening and analyzing the image.
     
  • Image/Video frame segmentation and identifying essential features.
     
  • Extracting the essential features of the input image/video.


The above steps can be followed by Object recognition, Object tracking, or 3-dimensional reconstruction of the image. The later steps depend on the objective of a particular user.

The main tasks associated with computer vision are:

  • Object Detection - It is the identification process of the object in the frame. For example - the detection of a particular model of car from an image.
     
  • Object Classification - It is the process of classifying objects into defined categories. For example - form an image classification of an object as a person or a car.
Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

What is OpenCV?

OpenCV stands for open-source computer vision library. OpenCV provides the necessary libraries that are helpful in performing computer vision tasks. The libraries implemented in OpenCV are written in C++ and are very fast in processing.

Using the OpenCV Python library, we can extract image information like the text in the image, an object in the image, etc. Various programming languages like C++, Java, and Python support OpenCV.

History of OpenCV

OpenCV (Open Source Computer Vision Library) is a famous open-source computer vision and machine learning software library. Intel Corporation initially developed it in the late 1990s to aid in researching and developing computer vision applications. Over the years, OpenCV has become an essential asset for professionals spanning diverse domains, including robotics, artificial intelligence, and image and video manipulation. This versatile tool has found its way into the toolkit of researchers, engineers, and developers, playing a pivotal role in their work.

Applications of OpenCV

Here are some real-world applications of OpenCV.

  • Automated Surveillance and inspection systems.
     
  • Object Detection
     
  • Face Recognition
     
  • Used in Robots to provide human-like sensing
     
  • Used in 3D motion structuring
     
  • Traffic Congestion Control Systems.
     
  • Used for image processing in the medical field - Liver CT image segmentation.

 

You can read related articles such as Congestion Control in Computer Networks here.

Why OpenCV is used for Computer Vision? 

OpenCV Python Library is in wide use these days; the following can be understood as the reason for using OpenCV over any other library of computer vision.

  • OpenCV is a powerful open-source library that provides computer vision operations. It is available as an application programming interface and is free of cost. 
     
  • The library is written in C++/C language, making it fast. 
     
  • The memory requirement for OpenCV is usually less, mostly using 60-70Mb of RAM. 
     
  • The OpenCV library now supports a wide variety of programming languages. 
     
  • OpenCV, combined with other Python libraries like Pytorch and Tensorflow, can give robust results. 

Working of OpenCV Python

OpenCV perceives the input image/video just as a human eye does. The image has pixels with associated values that constitute the image. OpenCV converts an image to numbers using these pixel values. The pixel values give a matrix corresponding to an image that can be read and utilized by different OpenCV operations. 

working-opencv

The image can be identified in two distinct ways:

  • GrayScale Image - The pixel value corresponds to a range of values from 0 to 255. The images are a variant of black and white images with different shades giving a gray effect.
     
  • RGB Image - It consists of three planes of Red, Green, and Blue color. The pixel values range from 0 to 256 and give a colored image as a result.

OpenCV Python Installation

The OpenCV Python library provides a user-friendly application programming interface. There are many ways to install the OpenCV Python library on your computer.

Anaconda

Anaconda environment is an open-source distribution for the use of Python programming language. It is mainly used for scientific computing, providing a versatile environment with package management.

In an Anaconda Environment, we can install OpenCV using the following command.

conda install -c conda-forge opencv

 

After this, we will have OpenCV installed in the Anaconda environment created on the computer.

Windows 

Installing the OpenCV Python library in Windows is simple, provided that Windows already has Pythony installed. We use the pip command to install OpenCV on Windows. Pip is a package management tool to manage software packages in a Python environment.

We can install OpenCV using the following command in Windows.

pip install opencv-python  

 

After this, we will have OpenCV installed. To check for the correct installation in the Python environment, import cv2. If there are no errors, then it is installed successfully.

Mac

Here, we will discuss installing the OpenCV Python library using Homebrew. Using homebrew installation becomes very easy.

We can install OpenCV using the following command on Mac.

brew install opencv

 

After this, we will have OpenCV installed successfully on the Mac.

Linux

The prerequisite for OpenCV installation in Linux is one must have Python installed. To check if Pyhton is present go to the terminal and run the following command.

python --version

 

If Python is already installed, we will use the PIP package management system to install and manage OpenCV. Now using the PIP package manager OpenCV can be directly installed downloaded and installed. To Install OpenCV go to the terminal and type the commands as.

pip install opencv-python

 

After this OpenCV will be installed in the Linux Machine. To check if it is properly installed if we can use the command as.

python
>> import cv2
>>print(cv2.version)

 

This will print the OpenCV version if it is properly installed.

OpenCV Python Basic Operations

The OpenCV Python library provides various operations that can be performed on image/video data. The basic and widely used operations that are often used in OpenCV are:

  • Read and Save Images
     
  • Resize Images
     
  • Rotate Images
     
  • Edge Detection of Images
     
  • Image Smoothing
     
  • Face Detection
     
  • Capturing Video

Read Images and Save Images using Open CV

Read and save are the most basic operation of the OpenCV Python library. The read operation allows one to read the images. The following is the syntax for the read operation.

cv2.imread(path, flag)

 

Here, imread is the function defined in OpenCV for reading images. The parameter associated is path and flag. The path consists of the path to the image to be read. The flag is one of the flag values to define Color, Grayscale, or unchanged image.

The save operation in OpenCV is performed using the imwrite. The following is the syntax for the save operation.

cv2.imwrite(filename, image)  


Here, imwrite is the function defined in OpenCV for saving images. The parameter associated is the filename and image. The filename consists of the file name we want to give the image. The image is the image that is to be saved.

Resize Images using Open CV

The image we deal with in computer vision requires to be resized. The OpenCV Python library provides the resize operation, which can be used to resize the image. The image resizing can be customized and done according to the user's requirements. 

The following is the syntax for resize operation in OpenCV.

cv2.resize(img, size, sx,sy, interpolation)

 

Here, resize is the built-in method to resize the images. The parameters associated with the resize methods are:

  • Img - It is the input image.
     
  • Size - The required size of the output
     
  • Sx - scaling factor along the x-axis.
     
  • Sy - scaling factor along the y-axis.
     
  • Interpolation - It consists of flag values invoking methods like nearest-neighbour interpolation, resampling, etc.

Rotate Images using Open CV

OpenCV provides the feature of rotating the images. The image rotation follows the syntax:

cv2.rotate( image, rotate[, dst] )

 

Here, rotate is the method name to rotate the image. The image here is the source image that is to be rotated. Rotate[] is the parameter consisting of the specifications on how to rotate the array. The array can have values like

  • cv2.cv2.ROTATE_90_CLOCKWISE - To rotate the image 90 degrees clockwise
     
  • cv2.ROTATE_180 - To rotate the image by 180 degrees.
     
  • cv2.ROTATE_90_COUNTERCLOCKWISE - To rotate the image 90 degrees anti-clockwise.

Canny Edge Detection using Open CV

Edge detection is one of the most important image processing techniques. It is used for finding image boundaries. Canny edge detection is one of the edge detection methods that can be implemented using the OpenCV Python library. The following is the syntax for canny edge detection using OpenCV.

edges = cv2.Canny(image, minValue, maxValue, aperture-size, L2gradient) 

 

Here, Canny is the built-in method for canny edge detection in images. The parameters associated with the canny edge detection methods are:

  • Image - Input image 
     
  • minValue - Minimum value of intensity gradient
     
  • maxValue - Maximum value of intensity gradient
     
  • Aperture size - It is the aperture size for the Sobel operator.
     
  • L2gradient -  It is the flag value used to define the L2 normalization. If it is, true L2 normalization is used to calculate the image gradient. If it is, false L1 normalization is used to calculate the image gradient.

Face Detection using OpenCV

Face detection is a computer vision technique to identify and locate human faces within images or video frames. It automatically detects the presence of facial features, like eyes, nose, and mouth, and marks the detected faces with bounding boxes. This technique is an essential building block for various applications such as facial recognition, emotion analysis, people counting, etc.

Capturing Video using OpenCV

Capturing Video using OpenCV involves accessing a sequence of frames from a video source, such as a webcam or a video file. This process makes sure real-time processing and analysis of video streams.

Advantages of OpenCV Python

The following are some of the major advantages of OpenCV.

  • The OpenCV Python library is a highly optimized machine learning model that can be capable of performing basic computer vision tasks efficiently.
     
  • Image preprocessing is simplified with in-built functions to resize, rotate, and crop the image.
     
  • It is easy to implement in many programming languages. Thus, caters to the need of many programmers.
     
  • The Libraries are written in C++, making them fast and easy to understand.
     
  • Video analysis and motion tracking help in dealing with video frame data.

Frequently Asked Questions

What is OpenCV Python? 

OpenCV Python is a powerful open-source computer vision library that provides tools and functions for image and video processing tasks. It offers interfaces for Python programming and enables developers to create applications that analyze and manipulate visual data efficiently.

Why is OpenCV used? 

OpenCV is used for processing and analyzing images and videos, performing object detection, face recognition, and image filtering tasks. It finds applications in different fields, like robotics, medical imaging, and augmented reality.

What is the full form of OpenCV? 

 The full form of OpenCV is "Open Source Computer Vision Library." It is a free and open-source software library that provides a complete set of tools for computer vision.

What is OpenCV in image processing? 

OpenCV suggests various algorithms for edge detection, image enhancement, feature extraction, and pattern recognition in image processing. It allows developers to implement complex image manipulation and analysis techniques efficiently.

Conclusion

In this article, we learned about the concept of computer vision. We learned what OpenCV is and how OpenCV Python libraries can be used. We discussed their installation and some basic operations associated with them. The operations we discussed include the syntax followed by the specific operation.

To learn more about Computer Vision and OpenCV Python Library, you can check out our other blog-

 

Happy Learning!

Previous article
Noise Tolerance in Computer Vision
Next article
Detectron2 for Object Detection
Live masterclass