Project 3 Results
-
Prohibitively large GIF animation (~15MB)
all 60 animation frames
-
Picking points:
Choose points using MATLAB's cpselect()
function. Points were also added at the corners of the image in order to ensure that the entire image would morph (including the background).
I need a haircut.
-
Building Delaunay Triangles
-
Class Average
This only includes 8 or so students from the class. (All of those who had submitted their correspondence points at the time of compilation)
-
Fun stuff!
-
My first attempt was to use texture mapping from one image to the shape of another. I wanted to put Efros' face to the shape of a baby.
This fails for a few reasons
- The glasses are nearly impossible to map while preserving geometry
- Extra points are needed in order to map the entire face
- The source image of Efros is of low resolution
-
Next, I picked a better subject.
This worked pretty well! Any sort of change in rotation in the face makes it extremely difficult to map. This example blends the subject with 10% Baby. Your mileage may vary.
This mapping required about 125 correspondence points.
-
And now for some more fun...
An interesting problem came up while doing this. Since the shape I am trying to overlay has concave features (by the neck and above the ears), the Delaunay algorithm assigned triangles that covered these regions. This caused unwanted blending with parts of the original image. In order to correct this, I simply added a few dummy correspondence points in each image. These points were placed significantly far enough away from the desired point maps that they would not alter the rest of the triangle assignment. Then, when I begin mapping textures for each triangle, I simply check that none of the dummy points are included in the set of points for each triangle. If they are, I disregard mapping of that pixel and allow the background to show through.
ebuehl
10/11/07