Matt's Source Code Portal

Home About Links Problems Contact

Pictures of an implementation of the "Wei and Levoy" and "Ashikhmin" texture synthesis algorithms.  200 extra random canidate pixels used for Ashikhmin.
Code can be found on the home page.


Texture 1
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 2
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 3
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 4
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 5
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 6
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

Texture 7
Input Texture

5x5 causal neighborhood, Wei and Levoy

7x7 causal neighborhood, Wei and Levoy

9x9 causal neighborhood, Wei and Levoy

5x5 causal neighborhood, Ashikhmin

7x7 causal neighborhood, Ashikhmin

9x9 causal neighborhood, Ashikhmin

For extra credit I did the 'target image' extension of the Ashikhmin algorithm.
As in the paper it works as follows: add to the error metric for a canidate pixel all pixels not in the causal neighborhood that were specified in the target image.
Rather than iterating many times I apply a multiplication factor to control the intensity of this error, so you can specify to what degree you want to favor texture continuity over fitting the target image.
We begin with the target image:

Attempting to tile the orange flower texture:

The same but setting the multiplication factor too high causes 'overfitting':

Now we try and fit my friend's head:

Using stones:

Using a new paper texture:

Using moderate fitting:

Using light fitting:

'Q.E.D.'