ENGLISH VERSION

VirtualDub MSU Cartoonizer Filter
(Преобразование фильмов в мультфильмы)

Галерея примеров работы

MSU Graphics & Media Lab (Video Group)

Алгоритм: Дмитрий Ватолин,
Михаил Бурхинов, Констанин Стрельников
Реализация: Михаил Бурхинов

MSU Cartoonizer v 3.0:
Реализован новый метод рисования, использующий заполнение сегментов
Добавлена возможность более точно рисовать лица
Оптимизация по скорости
Добавлена кнопка Preview
MSU Cartoonizer v 2.0:
Реализовано рисование цветным и простым карандашом
Улучшена визуализация контуров для рисования кистью
Добавлена возможность регулировать уровень насыщенности выходного видео
Добавлен Job-control
MSU Cartoonizer v 1.0:
Первый публичный релиз

Фильтр предназначен для получения эффектов мультипликации, живописи и рисования карандашом как для изображений, так и для видео. С помощью фильтра возможно создание множества различных интересных эффектов, а зависимость от целого ряда параметров позволяет выбрать наилучшее преобразование в каждом конкретном случае. Это первый фильтр от MSU Graphics & Media Lab, относящийся к области нефотореалистичной визуализации (Non-Photorealistic Rendering).

Множество примеров работы MSU Cartoonizer можно посмотреть в галерее.


Настройки


Внешний вид фильтра
диалог настроек фильтра

Интерфейс фильтра позволяет выбирать тип рисования (Cartoonizing mode): это может быть "рисование кистью" (Painting), "заполнение сегментов" (Filled Segments) или "рисование карандашом" (Drawing).

При рисовании кистью можно регулировать следующие параметры:

Brush Size
Регулирует размер кисти, которой производится рисование. Мелкие кисти делают кадр более детализованным. При этом повышается реалистичность изображения, что делает его менее похожим на нарисованное. Мелкие кисти рекомендуется применять к видео с небольшим разрешением. Крупные кисти делают изображение более размазанным, что повышает нефотореалистичность. Их лучше применять к видео с большим разрешением, и в случае, когда мелкие детали несущественны и нужен максимальный эффект рисованности. Также следует иметь ввиду, что при этом мелкие детали могут исчезать. Иногда, для получения более хорошего результата, необходимо увеличить разрешение видео. Это можно сделать при помощи внутреннего фильтра Virtual Dub - resize.

Brush Wetness
Регулирует смоченность кисти. Фактически, позволяет делать мазки более или менее четкими.

Color Randomization
Добавляет случайность в яркость цвета мазков. Позволяет добиться лучшего результата на однотонных участках изображения.

Color Saturation
Изменяет насыщенность результирующего изображения. Обычно мультфильмы рисуются яркими и красочными. Этот параметр позволяет регулировать это свойство.

Show Edges
С помощью этого параметра можно отобразить контуры отрисованные карандашом. Параметры рисования контуров задаются в параметрах рисования контуров(Pencil Edge Options).

При рисовании методом заполнения сегментов можно регулировать следующие параметры:

Number of Segments
Регулирует количество сегментов, на которое разбивается кадр

Color Saturation
Изменяет насыщенность результирующего изображения. Обычно мультфильмы рисуются яркими и красочными. Этот параметр позволяет регулировать это свойство.

Show Edges
С помощью этого параметра можно отобразить контуры отрисованные карандашом. Параметры рисования контуров задаются в параметрах рисования контуров(Pencil Edge Options).

При рисовании карндашом можно регулировать следующие параметры:

Pencil Type
Позволяет выбирать тип карандаша. Это может быть цветной Crayon (Colored) или простой Pen (Non-Colored) карандаш.

Number of Edges
Регулирует количество рисуемых штрихов.

Edge Brightness
Регулирует яркость карандашных штрихов.

Edge Thickness
С помощью этого параметра можно задать толщину штрихов.

Edge Accuracy
Регулирует точность рисования штрихов. Чем бегунок, соответствующий этому параметру, находится левее, тем штрихи будут более точными и аккуратными.

Use Face Detection
С помощью этого параметра можно улучшить прорисовку контуров на лицах. Включение этого параметра уменьшит скорость работы фильтра.

Общие параметры:

Process each N frame
Регулирует количество обрабатываемых кадров. Обрабатывается каждый N-ый кадр, остальные кадры дублируются. Этот параметр необходим для уменьшения реалистичности видео, а также понижения дрожания.

Текущая версия поддерживает job-файлы, что позволяет использовать этот фильтр с AviSynth.

Примеры скриптов для AviSynth:

Скрипт для рисования кистью:

LoadVirtualDubPlugin("MSU_Cartoonizer.vdf","MSU_Cartoonizer", 0)  
clip=AVISource("test.avi", false, "RGB24")
clip.ConvertToRGB32.MSU_Cartoonizer(0, ShowEdges, EdgeAmount, EdgeBrightness, EdgeThickness, EdgeAccuracy, 
UseFaceDetection, BrushSize, BrushWetness, ColorRandom, ColorSaturation, ProcessEachNframe)
  • ShowEdges - может принимать только два значения: 0 - соответствует отсутствию контуров,  1 - рисование контуров цветным карандашом.
  • EdgeAmount - целое число от 1 до 10, регулирует количество рисуемых контуров.
  • EdgeBrightness - целое число от 0 до 10, регулирует яркость отображаемых контуров. Значение по умолчанию равно 5.
  • EdgeThickness - целое число от 1 до 4, регулирует толщину рисуемых контуров.
  • EdgeAccuracy - целое число от 1 до 4, регулирует точность и аккуратность штрихов.
  • UseFaceDetection - может принимать только два значения: 0 - соответствует обычному рисованию контуров,  1 - указывает использовать улучшенное прорисовывание контуров на лицах.
  • BrushSize - целое число от 1 до 10, регулирует размер кисти.
  • BrushWetness - целое число от 0 до 10, регулирует смоченность кисти.
  • ColorRandom - цело число от 0 до 10, регулирует случайность, которая добавляется в цвет мазка.
  • ColorSaturation - целое число от 0 до 10, регулирует насыщенность обработанного изображения. Начальное значение равно 5.
  • ProcessEachNframe - целое число от 1 до 10, регулирует количество обрабатываемых кадров.

Скрипт для рисования методом заполнения сегментов:

LoadVirtualDubPlugin("MSU_Cartoonizer.vdf", "MSU_Cartoonizer", 0)
clip= AVISource("test.avi",false,"RGB24") 
clip.ConvertToRGB32.MSU_Cartoonizer(1, ShowEdges, EdgeAmount, EdgeBrightness, EdgeThickness, EdgeAccuracy, 
UseFaceDetection, SegmentAmount, ColorSaturation, ProcessEachNframe)
  • ShowEdges - может принимать только два значения: 0 - соответствует отсутствию контуров,  1 - рисование контуров цветным карандашом.
  • EdgeAmount - целое число от 1 до 10, регулирует количество рисуемых контуров.
  • EdgeBrightness - целое число от 0 до 10, регулирует яркость отображаемых контуров. Значение по умолчанию равно 5.
  • EdgeThickness - целое число от 1 до 4, регулирует толщину рисуемых контуров.
  • EdgeAccuracy - целое число от 1 до 4, регулирует точность и аккуратность штрихов.
  • UseFaceDetection - может принимать только два значения: 0 - соответствует обычному рисованию контуров,  1 - указывает использовать улучшенное прорисовывание контуров на лицах.
  • SegmentAmount - целое число от 1 до 10, регулирует количество сегментов.
  • ColorSaturation - целое число от 0 до 10, регулирует насыщенность обработанного изображения. Начальное значение равно 5.
  • ProcessEachNframe - целое число от 1 до 10, регулирует количество обрабатываемых кадров.

Скрипт для рисования карандашом:

LoadVirtualDubPlugin("MSU_Cartoonizer.vdf", "MSU_Cartoonizer", 0)
clip= AVISource("test.avi",false,"RGB24") 
clip.ConvertToRGB32.MSU_Cartoonizer(2, PencilType, EdgeAmount, EdgeBrightness, EdgeThickness, EdgeAccuracy, 
UseFaceDetection, ProcessEachNframe)
  • PencilType - может принимать только два значения: 0 - соответсвует цветному карандашу, 1 - простому карандашу.
  • EdgeAmount - целое число от 1 до 10, регулирует количество рисуемых контуров.
  • EdgeBrightness - целое число от 0 до 10, регулирует яркость отображаемых контуров. Значение по умолчанию равно 5.
  • EdgeThickness - целое число от 1 до 4, регулирует толщину рисуемых контуров.
  • EdgeAccuracy - целое число от 1 до 4, регулирует точность и аккуратность штрихов.
  • UseFaceDetection - может принимать только два значения: 0 - соответствует обычному рисованию контуров,  1 - указывает использовать улучшенное прорисовывание контуров на лицах.
  • ProcessEachNframe - целое число от 1 до 10, регулирует количество обрабатываемых кадров.

Примеры работы фильтра


Пример рисования кистью

Девочка
"Девочка".

Пример заполнения сегментов

Дженнифер Энистон
"Дженнифер Энистон".

Пример рисования кистью и простым карандашом

Скинарикова
"Адриана Скинарикова".

Пример применения фильтра к изображениям с природой

Пейзаж
"Пейзаж".

Мультипликация с использованием MSU Cartoonizer:

фрагмент из фильма "Властелин колец: Братство кольца"
фрагмент из фильма "Властелин колец: Братство кольца"

рисование карандашом, последовательность "Susi""
рисование карандашом последовательности "Susi"

Множество других примеров работы MSU Cartoonizer можно посмотреть в галерее.


Download


Связаться с нами можно по адресу: 


Другие материалы


Материалы по видео


Смотрите также материалы:
- По цветовым пространствам
- По JPEG
- По JPEG-2000