Now Reading
Converting An Image To A Cartoon Using OpenCV

Converting An Image To A Cartoon Using OpenCV

Prudhvi varma

Download our Mobile App


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:-



  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.


Stay Connected

Get the latest updates and relevant offers by sharing your email.
#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.

What Do You Think?

If you loved this story, do join our Telegram Community.


Also, you can write for us and be one of the 500+ experts who have contributed stories at AIM. Share your nominations here.
What's Your Reaction?
Excited
1
Happy
3
In Love
0
Not Sure
2
Silly
1

Copyright Analytics India Magazine Pvt Ltd

Scroll To Top