Turn off | Turn on background image
Interactive Texture Synthesis
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.
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. |