Мультфільм із зображенням за допомогою OpenCV - Python

Мультфільм із зображенням за допомогою OpenCV - Python

Мультфільм зображення перетворює звичайну фотографію на цікаву картину анімованого стилю. За допомогою OPENCV ми робимо це, згладжуючи зображення, щоб спростити кольори та виявити краї для створення контурів. Поєднання цих кроків робить фотографію схожим на мультфільм.

Передумови:  Модуль OPENCV

Підходити

  • Прочитайте вхідне зображення.
  • Перетворіть зображення в сіроку шкало для виявлення краю.
  • Нанесіть середню розмиту, щоб видалити шум.
  • Використовуйте адаптивне поріг для виявлення країв.
  • Нанесіть двосторонній фільтр, щоб згладити зображення, зберігаючи краї.
  • Поєднайте згладжене зображення з країв, щоб створити ефект мультфільму.

Реалізація 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  ()   

Вихід:

Вхід_imageОригінальне зображення Мультфільм Вихід зображення

Пояснення:

  • cv2.cvtcolor () Перетворює зображення на сіроку шкало для виявлення краю.
  • Cv2.medianblur () Видаляє шум для більш чистих країв.
  • cv2.adaptivethreshold () Виявляє краї, що дає ескізний ефект.
  • cv2.bilateralFilter () s Кольори Mooths, зберігаючи краї різкими.
  • cv2.bitwise_and () поєднує згладжені кольори та краї для мультфільму.