Texture transfer is implemented in the final deliverable, and a new 3D scene -- a random maze is created here. The synthesized textures are then mapped to the walls of the maze and some objects in it.
Below is the idea of texture transfer:
Suppose we are given two images A (source) and B (target), then the goal is to synthesize an image C that looks like B but has the texture of A.
This is how we do it (e.g. consider that we want to synthesize a new face from the original target face and a rice texture): where the face is bright (high luminance) we put bright patches of rice and we put dark patches of rice where the face is dark. Thus the synthesized image respects two independent constraints:
1. All the pixels of C come from A;
2. we put bright pixels of A at places where B is bright and dark pixels of A where B is dark (this is known as matching correspondence mapping).
We modify the error term of the image quilting algorithm to be the weighted sum, alpha times the block overlap matching error plus (1-alpha) times the squared error between correspondence map pixels within the source texture block and those at the current target image position. We iterate over the synthesized image several times, reducing the block size with each iteration. This iterative scheme works surprisingly well: it starts out using large blocks to roughly assign where everything will go and then uses smaller blocks to make sure the different textures fit well together.
We now use a maze to be the 3D scene, so that the user can walk through the scene using arrow keys and left mouse button to find the objects which are placed in the maze. When the user "hits" an object (when the position of the EYE vector is close enough to the location of the object), the object will disappear. So the user might want to wander in the maze to "eat up" all the objects inside.
Texture Transfer
In each group,
the images in the first row are the source and target respectively;
those in the second row are synthesized images as we do three iterations.
The format of the input is explained here.
The following group of image is scaled to be 1/3 of the original size
More results on texture transfer
A Snapshot of the Maze Using Some of Synthesized Images above
Download maze.zip
Last modified: May 13, 2002