קריקטורה של תמונה באמצעות OpenCV - Python

קריקטורה של תמונה באמצעות OpenCV - Python

קריקטורה של תמונה הופכת תמונה רגילה לתמונה מהנה בסגנון אנימציה. בעזרת OpenCV אנו עושים זאת על ידי החלקה של התמונה כדי לפשט את הצבעים ולגלות קצוות ליצירת קווי מתאר. שילוב שלבים אלה גורם לתמונה להיראות כמו קריקטורה.

תנאים מוקדמים:  מודול OpenCV

גִישָׁה

  • קרא את תמונת הקלט.
  • המיר את התמונה לגווני אפור לגילוי קצה.
  • החל טשטוש חציוני כדי להסיר רעש.
  • השתמש בסף הסתגלות כדי לאתר קצוות.
  • החל פילטר דו צדדי כדי להחליק את התמונה תוך שמירה על קצוות.
  • שלב את התמונה המוחלקת עם קצוות כדי לייצר את אפקט המצויר.

יישום פייתון

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

תְפוּקָה:

Input_imageתמונה מקורית תמונת פלט מצוירת

הֶסבֵּר:

  • cv2.cvtcolor () ממיר את התמונה לגווני אפור לגילוי קצה.
  • Cv2.medianblur () מסיר רעש לקצוות נקיים יותר.
  • cv2.aptivethreshold () מגלה קצוות המעניקים אפקט דמוי סקיצה.
  • cv2.bilateralfilter () s מווות צבעים תוך שמירה על קצוות חדים.
  • cv2.bitwise_and () משלב צבעים וקצוות מוחלקים לאפקט המצויר.