Guide To OpenCV Functions For Image Processing


OpenCV is used as an image processing library in many computer vision real-time applications. There are thousands of functions available in OpenCV. These simple techniques are used to shape our images in our required format. As we know an image is a combination of pixels, for a color image we have three channels with pixels ranging from 0 to 225, and for black & white-colored images has only one change ranging from 0 to 1. 

In this article, we will demonstrate some important image processing steps and we will do modifications to an image by manipulating its pixels using OpenCV functions. 


Sign up for your weekly dose of what's up in emerging technology.

Topics that will be covered this article

  • Edge detection using Canny filter
  • Converting a color image to Grayscale & vice versa.
  • Smoothing techniques
  • Morphology techniques

Converting a Color Image to a Grayscale Image

This is the basic technique that is used to convert the color image into grey shades. A color image consists of 3 channel depth while using grayscaling it reduces the depth of the image to 1 channel. It reduces model complexity. For many applications like edge detection, photo sketch, cartooning image we use grayscale converted images.

In the below code snippet we are converting a color image to a grayscale image.

import cv2

image = cv2.imread('/content/Screenshot (14).png')

grayImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)


In the above output, we converted the colored image to grayscale.

Edge detection 

In edge detection, it gives an outline of the image by extracting edges from the image. We are using a canny filter to perform this task. Based on the threshold values, a canny filter detects the edges. The higher thresholds give cleaner images compared to lower thresholds gives a clumsy output.

import cv2

import numpy as np

img = cv2.imread('/content/Screenshot (14).png',0)

edge_det = cv2.Canny(img,100,200)


Here we had given a threshold value 100,200 and you can try with different threshold values. This edge detection is used for segmentation, restoration, picture enhancement, pattern recognition.

Smoothing Techniques

The image smoothing technique is performed using a filter. By convolving the image, it reduces the noise in the image by adding a blurring effect on the edges. There are different types of smoothing techniques we perform depending on the input image.

Average using cv2.blur()

In this technique, depending on the size of the filter convolution is performed but it averages the pixels under the filter and assigns the value to the centre pixel under the filter.

import cv2

import numpy as np

from google.colab.patches import cv2_imshow

img = cv2.imread('/content/download (14).jpg')

blur = cv2.blur(img,(5,5))



normal image

Median Blur using cv2.medianBlur()

In this technique, it calculates the median of the pixels under the filter and it replaces the center value under the filter with the median value, positive odd integer to be assigned as filter size to perform the median blur technique.

img = cv2.imread('/content/download (14).jpg')

median_blur = cv2.medianBlur(img,5)



normal image
after applying median blur

Comparing smoothing techniques averaging and median blur gives similar results because one calculates on averaging pixels and another on calculating the medians under the filter.

Gaussian Blur using cv2.GaussianBlur()

In this technique, there is another parameter called sigma x and sigma y. It performs a blurring of an image by using parameters sigma x & sigma y. If it is set to zero then it calculates based on the size of its kernel.

img = cv2.imread('/content/download (14).jpg')

Gaussian_blur = cv2.GaussianBlur(img,(5,5),0)



normal image
after applying Gaussian blur

As we can see in the output, by blurring the image we tried to reduce the effect of rain

Morphological Techniques

These are the techniques used to manipulate the image sizes, these techniques are used only after converting the image into grayscale. These techniques are used for removing noise, correcting the imperfections in the data, and to make clear images. Erosion and Dilation are mostly used in morphological techniques.


This technique removes the boundary pixels from the input by just passing the filter on the image. Depending on the size of the kernel, it removes the boundary pixels from the input image. It performs similar to soil erosion so they named this technique as erosion.

img = cv2.imread('/content/Screenshot (14).png') 

kernel = np.ones((5,5),np.uint8)

img_erosion = cv2.erode(img, kernel, iterations=1)

img_dilation = cv2.dilate(img, kernel, iterations=1)



normal image
image erosion

In the above output by using erosion technique  we tried to make spiderman thinner.


The above technique removes the boundary pixels but in Dilation. It adds the additional pixels to the input. It is used when the pixels are missing in the image. In general practices, we apply erosion to shrink the image to remove noises, and then by applying the dilation, there will be no loss of pixels.

img = cv2.imread('/content/Screenshot (14).png') 

kernel = np.ones((5,5),np.uint8)

img_dilation = cv2.dilate(img, kernel, iterations=1)



normal image
image after dilation

In the above output using the dilation technique, we tried to make spiderman a little fatter.


In this article, we have illustrated different types of filters which play a key role in image processing while working on computer vision applications. Using OpenCV and support of inbuilt functions in OpenCV, we performed these implementations by just writing a few lines of codes.

More Great AIM Stories

Prudhvi varma
AI enthusiast, Currently working with Analytics India Magazine. I have experience of working with Machine learning, Deep learning real-time problems, Neural networks, structuring and machine learning projects. I am a Computer Vision researcher and I am Interested in solving real-time computer vision problems.

Our Upcoming Events

Conference, in-person (Bangalore)
MachineCon 2022
24th Jun

Conference, Virtual
Deep Learning DevCon 2022
30th Jul

Conference, in-person (Bangalore)
Cypher 2022
21-23rd Sep

3 Ways to Join our Community

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Telegram Channel

Discover special offers, top stories, upcoming events, and more.

Subscribe to our newsletter

Get the latest updates from AIM
Sreejani Bhattacharyya
Why is edtech falling first?

With the lockdown being imposed due to the COVID-19 pandemic and schools being shut down, the edtech startups witnessed some of their best times during 2020 and 2021.