Project 4: Image Quilting for Texture Synthesis and Transfer

Vibhu Ramani
October 24th, 2012


Texture Synthesis

Steps

Extra Credit

Calculating SSD via image filter operations: To calculate the SSD of a patch over an source image region we look at what the SSD expands to:
SSD = for every pixel i Sum (Si-Pi)^2
= sum (Si^2 - 2*Si*Pi + Pi^2)
sum(Si^2) : Square every Pixel value on the source image. Sum of the pixels on region the patch is applied to. Can be done by doing an image filter operation with a filter of values(1);
sum(Pi^2): sum of the square of the pixel values in the Patch.
sum(2*SiP1): twice the value of an image filter operation of the patch on the source image.
Computing it this way gives us the SSD at every pixel on the source image and thus we can pick up the best one. But to avoid similar patch sets we choose at random from the top 10.

Poisson Blending: in the overlap region after finding the min cut we can do a poisson blending on this transition line so that the intensities do not change drastically.

Results

Texture Patch SSD SSD+min_cut SSD+min_cut+Poisson Blending

Results for the other test images are available here

Texture Transfer

Steps

I tried increasing the iterations from 3-5 but it didn't make substantial difference in the final image. Part of which I think is because of the texture size itself.

Texture Image Texture Transferred Image

Fun:

Generated from the Texture synthesis pipeline. Move 5px up each iteration.