[TUTORIAL] Transformando Imagem para Cartoon em Python
Usando o OpenCV, lib de visão computacional, vamos criar um programinha que transforma uma imagem em um cartoon.
Antes de tudo vamos fazer a instalação do OpenCV para o python no terminal:
pip install opencv-python
Agora sim, vamos começar.
-
Primeiro vamos fazer a importação da biblioteca OpenCV:
from cv2 import cv2
-
Carregamos a imagem
img = cv2.imread(r'image.jpg')
-
Convertemos a imagem para a escala cinza, e suavizamos para reduzir os ruídos da imagem e deixa-lá mais facial para processa-lá.
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)
-
Detectamos as bordas para destacar as linhas da imagem.
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)
-
Cartonizamos a imagem, aplicando um filtro bilateral para preservar as bordas da imagem original e imagem final estilo desenho animado é criada aplicando-se a máscara de bordas à imagem suavizada.
color = cv2.bilateralFilter(img, 9, 250, 250)
cartoon = cv2.bitwise_and(color, color, mask=edges)
-
Por fim três imagens são exibidas na tela: a imagem original, a imagem de bordas e a imagem final estilo cartoon. O usuário precisa pressionar qualquer tecla para fechar a janela de exibição.
cv2.imshow("Image", img)
cv2.imshow("edges", edges)
cv2.imshow("Cartoon", cartoon)
cv2.waitKey(0)
cv2.destroyAllWindows()
Esse foi o tutorial de como transormar uma imagem para um cartoon em python.
Vou deixar meu repositório onde esse codigo está, junto com uma imagem para vocês testarem.
Feedbacks são bem-vindos, pois pretendo continuar postando e compartilhando tutorias aqui.