Tegneserie et billede gør et normalt foto til et sjovt animeret stil billede. Med OpenCV gør vi dette ved at udjævne billedet for at forenkle farver og detektere kanter for at skabe konturer. At kombinere disse trin får billedet til at ligne en tegneserie.
Forudsætninger: OpenCV -modul
Nærme sig
- Læs inputbilledet.
- Konverter billedet til gråskala til kantdetektion.
- Påfør median sløring for at fjerne støj.
- Brug adaptiv tærskel til at detektere kanter.
- Påfør et bilateralt filter for at udjævne billedet, mens du bevarer kanterne.
- Kombiner det udjævnede billede med kanter for at producere tegneserieffekten.
Python -implementering
Pythonimport 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()
Produktion:
Originalt billede
TegneserieudgangsbilledeForklaring:
- cv2.cvtcolor () Konverterer billedet til gråskala til kantdetektion.
- Cv2.medianblur () Fjerner støj til renere kanter.
- cv2.adaptivethreshold () Registrerer kanterne, der giver en skisselignende effekt.
- cv2.bilateralfilter () s Mooths farver, mens de holder kanterne skarpe.
- cv2.bitwise_and () Kombinerer udjævnede farver og kanter til tegneserieffekten.