CS1290 Project 4: Image Quilting for Texture Synthesis and Transfer

Name: Chen Xu
login: chenx

Algorithm Design

The texture synthesis algorithm aims to create a larger texture image using small texture patches. It finds small patches in the texture image and pastes them into the large synthesized texture image. The basic idea of finding the best matching patch is that, the already synthsized part and the candidate patch should match very well in their overlap region. At last, the algorithm finds the best cut with lowest cutting energy in the overlap region using dynamic programming, so that the new patch can be pasted to the synthesized image seamlessly.

The texture transfer algorithm transfers texture from one image to another source image, so that the source image is re-rendered using that specific texture. It's very like texture synthesis, the only difference is this time the algorithm also takes into account the source image intensity when searching the best patch, which makes the structure or layout of the re-rendered image be faithful to the original source image.

Results of Texture Synthesis

Table 1 shows results of given test image of texture synthesis. For the ssd best matching + min cut algorithm, the tile size matters a lot. The tile size should be set according to the natural of the texture, for more structured texture, like the bricks. The tile size should be carefully chosen according to the width and height of individual brick. For less structured texture, like toast, the tile size doesn't matter a lot.

Texture Random SSD Best Match SSD Best Match + Min Cut

Table 2 shows more results of texture synthesis.

Texture SSD Best Match + Min Cut

Results of Texture Transfer

Table 3 shows results of given test image of texture transfer. The iterative method of texture transfer is used, and basically the more number of iteration, the better the results.

Texture Source Texture Transfer

Table 4 shows some more results of texture transfer.