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:-
Sign up for your weekly dose of what's up in emerging technology.
- Importing libraries
- Reading the input image
- Detecting edges in the image
- Converting into grayscale & applying the medium blur
- 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)
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)
Step-4: Cartoonifying image
In this step, we will be cartoonifying the image using bilateral filter method.
#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
The transformation from input to output
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.