import cv2
import numpy as np
img = cv2.imread("sample.jpg")

#detecting 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)

# homogeneous color
color=cv2.bilateralFilter(img,9,300,300)

cartoon=cv2.bitwise_and(color,color,mask=edges)
# cv2.imshow("Edges", edges)
# cv2.imshow("Color",color)
cv2.imshow("Cartoon", cartoon)
cv2.waitKey(0)

import cv2
import numpy as np
img = cv2.imread("sample.jpg")

#detecting 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)

# homogeneous color
color=cv2.bilateralFilter(img,9,300,300)

cartoon=cv2.bitwise_and(color,color,mask=edges)
# cv2.imshow("Edges", edges)
# cv2.imshow("Color",color)
cv2.imshow("Cartoon", cartoon)
cv2.waitKey(0)

#detecting edges # homogeneous color # cv2.imshow("Edges", edges) # cv2.imshow("Color",color)