Мультфільм із зображенням за допомогою 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 ()
Вихід:
Оригінальне зображення
Мультфільм Вихід зображення Пояснення:
- cv2.cvtcolor () Перетворює зображення на сіроку шкало для виявлення краю.
- Cv2.medianblur () Видаляє шум для більш чистих країв.
- cv2.adaptivethreshold () Виявляє краї, що дає ескізний ефект.
- cv2.bilateralFilter () s Кольори Mooths, зберігаючи краї різкими.
- cv2.bitwise_and () поєднує згладжені кольори та краї для мультфільму.