Download presentation
Presentation is loading. Please wait.
1
C# CARTOON APPLICATION
Miles Lamensky
2
Accepting Demo Pics ( <600x400 )
3
Outline Definition and Requirements Solutions Methodology
Real-Time Demo Exceptions Learning and Development Process
4
Definition and Requirements
Project: Develop an application that makes cartoon like images from pictures. General Requirements: 1. Take an image and convert it to a cartoon like image using rotoscoping techniques. 2. Implement save and open functions. 3. Examine several rotoscoping algorithms and design your own. 4. Control the contrast, tint and intensity of the cartoon. 5. Choose a finite number of colors. 6. Actually choose the specific colors. 7. Implement a mobile version. 9. Consider showing the cartoon image as a preview before taking the picture.
5
Solutions
6
Solutions cont…
7
Methodology Image Format Conversation (Bitmap->Array, Bitmap->Image, etc.) Original Image -> Grayscale Sobel (Damian Wegner, 2005: Palette Quantizer, Median Cut (Smart K8:
8
targetImage = Sobel_Process(targetImage);
Image targetImage = GetQuantizedImage(sourceImage); Bitmap grayed = ToGrayscale(img); InitializeSolidBW(BWArray, grayed); Merge(SobelData, img); Sobel(SobelData, BWArray);
9
Real-Time Demo
10
Learning and Development Process
Strategies Extensions Knowledge Advice
11
Strategies 1 Cursory/Playful Exploration + recursive sweeps
+ averaging neighbors + color comparison THE BAD: + time effectiveness 1
12
2 openCV + Hough Transform
13
3 Sobel + Working Edge Detection + Noise Reduction Attempts (Median Cut)
14
4 Recursive Technique + Sobel THE BAD: + too many colors + still too much time
15
5 Color Quantization + Sobel
16
Exceptions Global Variables* BIG Files* Color Leakage
Thickening Detected Edges Post-Edge Noise Reduction Already Low-Quality Images
17
Color Leakage + Color mixing when too few colors Possible Fixes:
Edge Detection First
18
Thickening Detected Edges
Possible Fixes: Alter Sobel Function SobelData[y1, x1] = sum; //FEEBLE ATTEMPT TO THICKEN EDGE; FAIL //SobelData[y1-1, x1-1] = sum; //SobelData[y1, x1 - 1] = sum; //SobelData[y1 - 1, x1] = sum; //SobelData[y1 + 1, x1 + 1] = sum; //SobelData[y1 + 1, x1] = sum; //SobelData[y1, x1 + 1] = sum; //SobelData[y1 + 1, x1 - 1] = sum; //SobelData[y1 - 1, x1 + 1] = sum;
19
Post-Edge Noise Reduction
Possible Fixes: Noise Reduction Algorithms Noise Reduction
20
Already Low-Quality Images
The purpose of a color quantization!!!
21
Knowledge Android (-_-) C# (*) Color Comparison RGB openCV
Hough Transform Visual Basic Sobel Color Quantization Median Cut
22
For Future Friends Android Real-Time Conversion (Video)
23
Advice Borrow Shamelessly (i.e. Steal Adapt) Make a !@#$@ Plan
Read the Project Outline Swallow Pride (i.e. ???’s) Error Blog Step Back Alternate Alcohol (if of age)
24
Hey. Thanks.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.