CS194-26 Image Quilting (Pre Canned)


Randomly Sampled Texture

Here are results created by randomly sampling textures with square patches. We start with a blank canvas and fill in images from top left. Since the patchsize wasn't an exact multiple of the output size, you will notice some solid blacks at the left and bottom borders of the images.

Bricks
White

Overlapping Patches

By following the instructions given and calculating SSD based on an overlap of the patch, we can create better images. To obtain overlap we create a mask depending on whether we want only vertical, only horizontal or both sides. We start filling in images from top left. Observations: Cases where the image is symmetrical perform fairly well, but for images like the Red and Whoo, it doesn't do as well, probably cause the pattern isn't consistent. Compared to the random case it still finds unique ways to combine them such that the overlap cost is minimal.

Original Image
Bricks Random
Better Bricks
Original Image
Whites Random
Better Whites
Original Image
Red Random
Better Reds

In this case, it might not be super obvious but the image's patches are aligned in a symmetric way compared to the random one!

Original Image
Whoo Random
Better Whoo

Seam Finding

quilt_cut, is the same except we change ssd patch to ssd_patch_cut which uses cut to figure out best path. Used quilt_simple to run this, just replaced the call from ssd_patch to ssd_patch_cut. Results slightly better.

Bricks no cut
Bricks w/ cut

Bells & Whistles

Attached in the code, in the jupyter notebook is my own implementation of cut.m in python. Wasn't sure what images I could show for it, since it's just code.

*Note: I've only done part of the project because I'm trying to get the minimum points to hit 70% and pass. If the grading scheme of the project is different than the project website states, please be lenient :(