Cartooning una imagen usando OpenCV - Python

Cartooning una imagen usando OpenCV - Python

La caricatura de una imagen convierte una foto normal en una divertida imagen de estilo animado. Con OpenCV hacemos esto al suavizar la imagen para simplificar los colores y detectar bordes para crear contornos. Combinar estos pasos hace que la foto parezca una caricatura.

Prerrequisitos:  Módulo OpenCV

Acercarse

  • Lea la imagen de entrada.
  • Convierta la imagen a escala de grises para la detección de borde.
  • Aplique un desenfoque medio para eliminar el ruido.
  • Use el umbral adaptativo para detectar bordes.
  • Aplique un filtro bilateral para suavizar la imagen mientras preserva los bordes.
  • Combine la imagen suavizada con bordes para producir el efecto de dibujos animados.

Implementación de Python

Python
   import   cv2   img   =   cv2  .  imread  (  'Screenshot.webp'  )   if   img   is   None  :   print  (  'Image not found'  )   exit  ()   # Prep grayscale & blur   g   =   cv2  .  cvtColor  (  img     cv2  .  COLOR_BGR2GRAY  )   g   =   cv2  .  medianBlur  (  g     5  )   # Edges   e   =   cv2  .  adaptiveThreshold  (  g     255     cv2  .  ADAPTIVE_THRESH_MEAN_C     cv2  .  THRESH_BINARY     9     9  )   # Smooth color   c   =   cv2  .  bilateralFilter  (  img     9     250     250  )   # Combine   cartoon   =   cv2  .  bitwise_and  (  c     c     mask  =  e  )   cv2  .  imshow  (  'Cartoon'     cartoon  )   cv2  .  imwrite  (  'cartoon_output.webp'     cartoon  )   cv2  .  waitKey  (  0  )   cv2  .  destroyAllWindows  ()   

Producción:

Entrada_imageImagen original Imagen de salida de dibujos animados

Explicación:

  • CV2.CVTColor () Convierte la imagen en escala de gris para la detección de borde.
  • cv2.medianBlur() Elimina el ruido para los bordes más limpios.
  • cv2.AdaptivethReshold () detecta bordes que dan un efecto similar al boceto.
  • cv2.bilateralfilter () s MOOTHS Colors mientras mantiene los bordes afilados.
  • cv2.bitwise_and () Combina colores y bordes suavizado para el efecto de dibujos animados.