Cartooning en bild med OpenCV - Python

Cartooning en bild med OpenCV - Python

Cartooning En bild förvandlar ett normalt foto till en rolig animerad bild. Med OpenCV gör vi detta genom att jämna ut bilden för att förenkla färger och upptäcka kanter för att skapa konturer. Att kombinera dessa steg gör att fotot ser ut som en tecknad film.

Förutsättningar:  OpenCV -modul

Närma sig

  • Läs inmatningsbilden.
  • Konvertera bilden till gråskala för kantdetektering.
  • Applicera median oskärpa för att ta bort brus.
  • Använd adaptiv tröskel för att upptäcka kanter.
  • Applicera ett bilateralt filter för att jämna ut bilden medan du bevarar kanter.
  • Kombinera den utjämnade bilden med kanter för att producera tecknadseffekten.

Python -implementering

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  ()   

Produktion:



Input_imageOriginalbild Tecknad utgångsbild

Förklaring:

  • cv2.cvtcolor () Konverterar bilden till gråskala för kantdetektering.
  • Cv2.medianBlur () Tar bort brus för renare kanter.
  • cv2.adaptivethreshold () Upptäcker kanter ger en skissliknande effekt.
  • cv2.bilateralfilter () s Mooths färger medan du håller kanterna skarpa.
  • cv2.bitwise_and () Kombinerar utjämnade färger och kanter för tecknadseffekten.

Top Artiklar

Kategori

Intressanta Artiklar