RUSSIAN VERSION

VirtualDub MSU Cartoonizer Filter
(Converts Movies into Cartoons)

Gallery of results

MSU Graphics & Media Lab (Video Group)

Take a look at this article on the new site! Follow the link
https://videoprocessing.ai/video_filters/cartoonizer.html

Algorithm: Dr. Dmitriy Vatolin,
Michail Burkhinov, Konstantin Strelnikov
Implementation: Michail Burkhinov

MSU Cartoonizer v 3.0:
Filled Segments Rendering Added
Edge rendering for Faces Improved
Performance Optimized
Preview button Added
MSU Cartoonizer v 2.0:
Colored and gray scale Pencil Drawing
Edge rendering for Painting Improved
Color saturation control Added
Job control Added
MSU Cartoonizer v 1.0:
First public release

The filter is designed for painting, drawing and animated cartoon rendering. MSU Cartoonizer filter has many parameters, which allows to obtain very interesting results. This is the first filter developed by Graphics & Media Lab referring to non-photorealistic rendering area.

More examples of MSU Cartoonizer usage can be seen in the gallery

Settings

Interface of the filter
filter settings


Interface of the filter allows to choose Cartoonizing mode. It can be either "Painting", "Filled Segments" or "Drawing".


Following settings can be modified in "Painting" mode:

Brush Size
Allows to control size of the brush, which painting is made by. Small brushes make the frame more detailed, thus allowing image to be more realistic. It is recommended to apply small brushes to the video with small resolution. Large brushes make the image more blurred, thus increasing non-photorealistic effect. It is better to apply large brushes to the video with large resolution or in case when small details are not very important and maximum painting effect is needed. It is necessary to take into account, that small details may disappear. Sometimes, to receive better results, it is useful to increase resolution of the video. It can be done by means of Virtual Dub's internal filter - resize.

Brush Wetness
Controls wetness of a brush. In fact, allows to change accuracy of strokes.

Color Randomization
Adds variety to color luminance of strokes. This setting allows to achieve better results on monochromatic areas of the image.

Color Saturation
Changes Saturation of resulting image. Usually cartoons are bright and colorful, this setting allows to increase or decrease level of these parameters.

Show Edges
This setting allows to render edges using crayon. Options of edge rendering can be modified in Pencil Edge Options.


The following settings can be modified in "Filled Segments" mode:

Number of Segments
Allows to control number of the rendered segments.

Color Saturation
Changes Saturation of resulting image. Usually cartoons are bright and colorful, this setting allows to increase or decrease level of these parameters.

Show Edges
This setting allows to render edges using crayon. Options of edge rendering can be modified in Pencil Edge Options.


The following settings can be modified in "Drawing" mode:

Pencil Type
Allows to choose the type of a pencil, which a cartoon is rendered by. It may be Crayon (Colored) or Pencil (Non-Colored).

Number of Edges
Controls the amount of rendered edges.

Edge Brightness
Controls brightness of the edges for non-colored pencil and saturation of the strokes for colored pencil.

Edge Thickness
Controls edge thickness.

Edge Accuracy
Controls accuracy of edge rendering. The left side of the bar corresponds to precise strokes.

Use Face Detection
If enabled, this setting allows to improve edge rendering for Faces.

General Settings:

Process each N frame
Allows to control the amount of processed frames. Each N-th frame is processed, other frames are duplicated. This parameter is used to reduce realism of the processed video, and also to decrease shaking.

Features of the filter:

The new version supports job contol allowing the filter to be used by AviSynth.


Examples of using filter in AviSynth:

Example of a script for Painting:

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 - sets visibility of the edges. ShowEdges can be  0 - invisible edges  and 1 - visible edges.
  • EdgeAmount - integer between 0 and 10. Sets the amount of edges.
  • EdgeBrightness - integer between 0 and 10. Sets the edge brightness. Default value is 5.
  • EdgeThickness - integer between 1 and 4. Sets the edge thickness, 1 - thin edges and 4 - thick edges.
  • EdgeAccuracy - integer between 1 and 4. Sets the stroke accuracy, 1 - maximum edge accuracy and 4 - minimum edge accuracy.
  • UseFaceDetection - allows improved edge rendering for Faces. UseFaceDetection can be 0 -  do not use improved edge rendering for Faces,  1 - use improved edge rendering for Faces.
  • BrushSize - integer between 1 and 10. Sets the size of a brush.
  • BrushWetness - integer between 0 and 10. Sets the brush wetness.
  • ColorRandom - integer between 0 and 10. Sets the color randomization.
  • ColorSaturation - integer between 0 and 10. Sets the color saturation. Default value is 5.
  • ProcessEachNframe - integer between 1 and 10. Sets the amount of processed frames.

Example of a script for Filled Segments:

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 - sets visibility of the edges. ShowEdges can be  0 - invisible edges  and 1 - visible edges.
  • EdgeAmount - integer between 0 and 10. Sets the amount of edges.
  • EdgeBrightness - integer between 0 and 10. Sets the edge brightness. Default value is 5.
  • EdgeThickness - integer between 1 and 4. Sets the edge thickness, 1 - thin edges and 4 - thick edges.
  • EdgeAccuracy - integer between 1 and 4. Sets the stroke accuracy, 1 - maximum edge accuracy and 4 - minimum edge accuracy.
  • UseFaceDetection - sets improved edge rendering for Faces. UseFaceDetection can be 0 -  not use improved edge rendering for Faces,  1 - use improved edge rendering for Faces.
  • SegmentAmount - integer between 1 and 10. Sets the amount of rendered segments.
  • ColorSaturation - integer between 0 and 10. Sets the color saturation. Default value is 5.
  • ProcessEachNframe - integer between 1 and 10. Sets the amount of processed frames.

Example of a script for Drawing:

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)
  • PenciType - Sets the Pencil Type. PencilType can be 0 - Crayon (Colored)  and 1 - Pencil (Non-Colored).
  • EdgeAmount - integer between 0 and 10. Sets the amount of edges.
  • EdgeBrightness - integer between 0 and 10. Sets the edge brightness. Default value is 5.
  • EdgeThickness - integer between 1 and 4. Sets the edge thickness, 1 - thin edges and 4 - thick edges.
  • EdgeAccuracy - integer between 1 and 4. Sets the stroke accuracy, 1 - maximum edge accuracy and 4 - minimum edge accuracy.
  • ProcessEachNframe - integer between 1 and 10. Sets the amount of processed frames.

Examples


Painting

Girl and dog
"Girl and dog".

Filled Segments

Jennifer Aniston
"Jennifer Aniston".

Painting and Drawing

Adriana
"Adriana Sklenarikova"

The image showing results of using MSU Cartoonizer for landscapes

Landscape
"Landscape"

Animated Cartoon Rendering using MSU Cartoonizer

fragment from movie The Lord of the Ring: The Fellow Ship of the Ring
fragment from"The Lord of the Rings: The Fellowship of the Ring" movie

Pencil Drawing for the Susi movie
Pencil Drawing for the "Susi" movie
You can see other examples of MSU Cartoonizer usage in the gallery.


Download


Contacts

E-mail:
For common questions about filter's work please contact us
For commercial license of this filter (commercial usage is not free) please contact us сontact email


Other resources


Video resources:

Last updated: 12-May-2022


Server size: 8069 files, 1215Mb (Server statistics)

Project updated by
Server Team and MSU Video Group

Project sponsored by YUVsoft Corp.

Project supported by MSU Graphics & Media Lab