I combined voxel carving and augmented reality to insert 3d reconstructions of real life objects into real life scenes for a final project for 15-463, Computational Photography. There is a more detailed writeup here. It looks kind of bleh at the moment, and it involves a lot of hacked together libraries. I really like the idea of it though, so this is something I’m planning on revisiting when I have more skill in the third dimension.
This was for an assignment for Computational Photography, a course I’m taking this semester. As such, I can’t in good faith upload the MATLAB source. Some day, I might write a face morphing library in C or Python though.
There is no great social or political message here. I just thought it would look cool. Both of the images are from Wikipedia.
On the technical side of things, matching points are manually picked on both images. They are then formed into triangles using a Delaunay function. The matching triangles are then morphed using an affine transform by the fundamental matrix that matches the three specified pairs of points. A different amount of “morph” is applied to each of the 61 frames in this. It all comes together to look surprisingly smooth.
My Google Summer of Code Project has finally grown up and flown out of my personal git repo to enter the Pygame SVN. All development will now occur there, though I will leave my git up for archival purposes.
The project is a module for Pygame to support v4l2 cameras. The impetus for this was to make the webcam on the OLPC XO usable without intimate knowledge of GStreamer, and to allow for some basic computer vision. The module does, however, support many camera pixelformats beyond those used on the XO, and is pretty flexible to adding new ones.
At the moment, there is no support for v4l cameras beyond detecting that they are attached to the computer, and there is no support at all for Windows or OS X. René Dudfield is starting work on Windows support using directshow. OS X support will come eventually.
The API documentation for the module is pretty thorough, but I haven’t uploaded any tutorials or example scripts yet. For now, you can look at some of the scripts I’ve posted on this blog.