https://github.com/axu2/image-quilting
A numpy implementation of the paper "Image Quilting for Texture Synthesis and Transfer" (2001)
https://github.com/axu2/image-quilting
image-based-rendering texture-mapping texture-synthesis
Last synced: 2 months ago
JSON representation
A numpy implementation of the paper "Image Quilting for Texture Synthesis and Transfer" (2001)
- Host: GitHub
- URL: https://github.com/axu2/image-quilting
- Owner: axu2
- Created: 2020-01-09T08:11:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-16T07:33:03.000Z (over 1 year ago)
- Last Synced: 2025-03-27T21:52:04.980Z (3 months ago)
- Topics: image-based-rendering, texture-mapping, texture-synthesis
- Language: Jupyter Notebook
- Homepage:
- Size: 69.4 MB
- Stars: 19
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Image Quilting for Texture Synthesis and Transfer

https://www.youtube.com/watch?v=QMiCNJofJUk
Image quilting is a technique of generating new images
by stitching together patches of existing images.
It has applications of1) Texture synthesis, generating arbitrarily large textures from small real-world samples and
2) Texture transfer, re-rendering an image in the style of another.
>The method
works directly on the images and does not require 3D information.For more information, consult the original paper at https://people.eecs.berkeley.edu/~efros/research/quilting.html
All images in this readme come from the original paper or presentation at SIGGRAPH '01.
In this repository, we will be implementing the paper using Python and NumPy.
## Texture Synthesis
The algorithm starts with an input image and a block size:

We then define a minimum cost path between the overlap of two blocks:
We then build up a synthesized image by tiling small blocks of the input image.

(a) Here, we just randomly choose blocks
(b) Here we pick blocks that have the least overlap error
(c) We do everything in (b) but also cut along the minimum error boundary.
## Texture Transfer
>[Here] just add another constraint when sampling: similarity to underlying image at that spot
