Now Reading
Converting An Image To A Cartoon Using OpenCV

Converting An Image To A Cartoon Using OpenCV

Computer vision is one of the hottest fields in Artificial Intelligence with a wide variety of applications. OpenCV is the most popular library used in computer vision with a lot of interesting stuff. If you want to start your journey in computer vision you can start from learning OpenCV. It is easy to understand and implement by everyone. In this article using OpenCV, let’s have fun with converting normal images into cartoons.

We will cover the following steps in this article to convert the image to cartoon:-

How To Start Your Career In Data Science?
  1. Importing libraries
  2. Reading the input image
  3. Detecting edges in the image
  4. Converting into grayscale & applying the medium blur
  5. Cartoonifying the image

Converting Image to Cartoon Using OpenCV

Now, let us proceed step-by-step.

Step-1: Reading the libraries

Here we are importing the required libraries. If you are working in Google Colab then we need to import google.colab.patches.

#Importing required libraries
import cv2
import numpy as np
from google.colab.patches import cv2_imshow

Step-2: Reading the image

In this step, we will read the image. We have download an image if Virat Kohli from Google Image and will try to perform our experiment on this image.

#Reading image 
img = cv2.imread("/content/virat.jpeg")
from skimage import io 
io.imshow(img)

As we can see that the input image read by OpenCV is being shown as a BGR (Blue-Green-Red) image so we need to convert it to the RGB (Red-Green-Blue).

#Converting to RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
io.imshow(img)

Step-3: Detecting edges

Here we are going to detect the edges in the image using adaptive thresholding methods.

#Detecting edges of the input image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)
io.imshow(edges)
images to cartoon

Step-4: Cartoonifying image

In this step, we will be cartoonifying the image using bilateral filter method.

See Also

#Cartoonifying the image
color = cv2.bilateralFilter(img, 9, 250, 250)
cartoon = cv2.bitwise_and(color, color, mask=edges)

Step-5: Final Output (Cartoon Image)

Finally, we will visualize the final output

io.imshow(cartoon)

images to cartoon

The transformation from input to output

images to cartoon
images to cartoon

Conclusion

In the above demonstration, we converted a normal image into a cartoon by implementing a few lines of code using computer vision techniques. we shall have great fun using computer vision techniques.

The complete code of this implementation is available on AIM’s GitHub repository. Please go through this link to find the notebook.

Subscribe to our Newsletter

Get the latest updates and relevant offers by sharing your email.
Join our Telegram Group. Be part of an engaging community

Copyright Analytics India Magazine Pvt Ltd

Scroll To Top