Dibuixos animant una imatge mitjançant OpenCV - Python
El dibuix animat d'una imatge converteix una foto normal en una imatge divertida d'estil animat. Amb OpenCV ho fem suavitzant la imatge per simplificar els colors i detectar les vores per crear esquemes. Combinar aquests passos fa que la foto sembli un dibuix.
Requisits previs: Mòdul OpenCV
Dirigir -se
- Llegiu la imatge d’entrada.
- Converteix la imatge en escala de grisos per a la detecció de vora.
- Apliqueu la difusió mediana per eliminar el soroll.
- Utilitzeu el llindar adaptatiu per detectar les vores.
- Apliqueu un filtre bilateral per suavitzar la imatge mantenint les vores.
- Combina la imatge suavitzada amb les vores per produir l'efecte de dibuixos animats.
Implementació 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 ()
Sortida:
Imatge original
Imatge de sortida de dibuixos animats Explicació:
- cv2.cvtcolor () Converteix la imatge en escala de grisos per a la detecció de vora.
- Cv2.medianblur () Elimina el soroll per a les vores més netes.
- cv2.adaptiveThreshold () Detecta les vores donant un efecte similar al esbós.
- cv2.bilateralFilter () s Els colors mooths mantenen les vores nítides.
- cv2.bitwise_and () Combina colors i vores suavitzats per a l'efecte de dibuixos animats.