Turn off | Turn
on background image
Interactive Texture Synthesis
Michael Guo
This is my senior project completed in CPSC
490b at Yale University under the
advisory of Prof. Julie
Dorsey. JTexture is a Java Swing program based on Efros and Freeman's image
quilting algorithm. I added my own extensions: a graphical user interface
(GUI), the ability to change parameters dynamically, and numerous additions
to increase variety and control over texture synthesis. To run the software,
you will need the latest Java
Runtime Environment. I have tested it under J2SE 1.4.2_04 JRE. There
are no guarantees that it will run on anything older or newer.
Abstract
We present several extensions to Efros and Freeman’s image
quilting algorithm that improve user control and increase variety in synthesized
textures. First, we add a graphical user interface to control texture synthesis.
Prior implementations of texture synthesis algorithms focused on the algorithms
themselves and simply ran in the background without any user interaction.
Second, we add the ability to change parameters dynamically to vary texture
synthesis and add further user control during the texture synthesis process.
Before, users could only change parameters at the input stage of the texture
synthesis pipeline. Last, we include a number of additions to the image quilting
algorithm. One addition is transformations on the sample texture to create
textures that are more varied. Image quilting tends to tile textures after
several iterations, and increasing the search space tends to add more variety,
preventing this behavior. Another is dynamically limiting the search space
to force the algorithm to create textures stochastically similar to only that
area. These additions either speed up the texture synthesis process or add
more control for the user. Thus far, the only user control has been at the
input stage of the texture synthesis pipeline (inputs -> texture synthesis
algorithm -> output). Texture synthesis requires much tweaking of numerous
parameters, and the results can often be surprising. We put the user in the
pipeline and give her control over the algorithm itself. As a result, she
can control growth of the texture and experiment with texture synthesis in
real time rather than waiting for an algorithm to complete itself.
| Section |
Description |
| JTexture Help |
If you are having trouble figuring out how to use the application,
then check out this area for documentation. |
| Gallery |
See some of the many textures I have generated using my application.
(Note that the background of all these pages is in fact a non-tiled
texture that was generated by my program.) |
| Downloads |
Get JTexture (including source code) here! Also available
are my proposal and final writeup in PDF format. You will need Adobe
Acrobat Reader or a comparable program to view them. |
| Links |
Links to related resources and acknowledgements are here. |
|