-
Notifications
You must be signed in to change notification settings - Fork 0
/
chroma.html
executable file
·128 lines (109 loc) · 5.65 KB
/
chroma.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Esteban Tovagliari — Chroma keying</title>
<meta name="description" content="Esteban Tovagliari, Non-virtual VFX software development">
<!-- ******************************************************************************************
Set the type and color theme here - the Pro version contains additional themes -->
<link href="css/hawthorne_type4_color6.css" rel="stylesheet">
<!-- ************************************************************************************* -->
<link href="css/font-awesome.min.css" rel="stylesheet">
<script src="js/vendor/modernizr.js"></script>
<script src="js/vendor/jquery.min.js"></script>
<link rel="stylesheet" href="css/lightbox.css">
<script src='js/vendor/lightbox.min.js'></script>
<link href="css/main.css" rel="stylesheet">
<script src="js/main.js"></script>
</head>
<body>
<div class="top-border"></div>
<div class="row">
<script>createHeader();</script>
<div class="small-12 medium-12 large-12 small-centered columns">
<nav>
<ul class="inline-list-custom">
<li><a href="index.html">Selected Projects</a></li>
<li><a href="about.html">About</a></li>
<li><a href="blog.html">Blog</a></li>
</ul>
</nav>
</div>
</div>
<div class="row">
<div class="small-12 medium-7 large-7 columns">
<h2>Chroma keying and alpha matting</h2>
<p>
Some tools I developed to optimize my workflow and improve the quality of my compositing projects.
</p>
<h3>Bayesian matting</h3>
<p>
I Implemented an improved version of the <a href="http://grail.cs.washington.edu/projects/digital-matting/papers/cvpr2001.pdf">Bayesian matting</a> algorithm shortly after the original paper was published.
Initially it was a command line tool and later a plugin for the Ramen compositor and a Spark for IFFS systems.
</p>
<p>
The tool required a trimap (3 level alpha channel) that classifies pixels as foreground, background or unknown
and estimated the foreground and background colors and opacity of the unknown pixels using Bayesian statistics.
Optionally, a clean background plate could be provided to improve the estimation.
</p>
<p>
I used the tool frequently in production. It produced excellent results for complex chroma keying jobs
(hair, motion blur, transparent objects, ...).
</p>
<p>
I'm currently working on an updated version of this tool.
</p>
<h3>Image segmentation</h3>
<p>
I wrote a graph cut image segmentation tool as a plugin node for the Ramen compositor.
I used it as a first step to generate quick masks for color corrections and trimaps for Bayesian matting.
</p>
</div>
<div class="small-12 medium-5 large-5 columns">
<p><strong>Links</strong></p>
<hr>
<ul class="compact_list">
<li><a href="http://grail.cs.washington.edu/projects/digital-matting/papers/cvpr2001.pdf">Bayesian matting</a></li>
<li><a href="http://en.wikipedia.org/wiki/Graph_cuts_in_computer_vision">Graph cuts</a>
</ul>
<hr>
<p><strong>Gallery</strong></p>
<hr>
<div>
<div>
<a href="img/chroma/gcut.jpg" data-lightbox="chroma"
data-title="Graph cut based image segmentation">
<img src="img/chroma/gcut-thumb.jpg" alt=""/>
</a>
<a href="img/chroma/bayesian.1.jpg" data-lightbox="chroma"
data-title="Bayesian matting: original, trimap, estimated foreground, estimated alpha">
<img src="img/chroma/bayesian-thumb.1.png" alt=""/>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-12 large-12 columns">
<hr class="project-detail-hr" />
</div>
</div>
<div class="row">
<div class="small-12 medium-12 large-12 columns">
<p class="back-to-top-holder"><a class="back-to-top"><i class="fa fa-chevron-circle-up fa-3x"></i></a></p>
</div>
</div>
<script>createFooter();</script>
<script src="js/foundation.min.js"></script>
<script src="js/hawthorne.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-62597547-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>