| Home | About | Links | Problems | Texure Synthesis | 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.'