How to create a cartoon effect – Opencv with Python

We’re going to see in this video how to create a cartoon effect.
A cartoon has 2 important charateristics:

  1. Really clear edges
  2. Homogeneus colours

Starting from an original image taken with a camera we’re going to give to it a cartoon effect keeping in mind these 2 charateristics.

 

Source code:

import cv2
import numpy as np
img = cv2.imread("adventure.jpeg")
# 1) Edges
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)
# 2) Color
color = cv2.bilateralFilter(img, 9, 300, 300)
# 3) Cartoon
cartoon = cv2.bitwise_and(color, color, mask=edges)

cv2.imshow("Image", img)
cv2.imshow("Cartoon", cartoon)
cv2.imshow("color", color)
cv2.imshow("edges", edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

Files:

  1. adventure.jpeg