Git Product home page Git Product logo

image-quilting-1's Introduction

Image Quilting for Texture Synthesis and Transfer

Demo

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 of

  1. 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:

input block

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.

build

(a) Here, we just randomly choose blocks

(b) Here we pick blocks that have the least overlap error

(c) We do everything in (c) but also cut along the minimum error boundary.

Texture Transfer

[Here] just add another constraint when sampling: similarity to underlying image at that spot

half

image-quilting-1's People

Contributors

axu2 avatar kevin-wu-97 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.