"Py"thon program for "Poi"sson Image Editing
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 31 commits behind fbessho:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



PyPoi is an image processing GUI program written in Python. It stands for "Python Program for Poisson Image Editing"

It enable you to try Poisson Image Editing method interactively. Some examples are already ready for you, but you can also load arbitrary images and try it.

demo gif

Get Started

Well... no worries! If you're using Windows or Mac OS, you simply need to download files and run it to try this program.

Simple installation

  1. Go to the release page
  2. From the latest version, download zip file (recommended) or executable file.
  3. If you download zip file, extract the file in any folder, and double click

Run from repository (for developer)

You need to have Python2.7 and pip installed before starting it. It is recommended to use virtualenv. Please refer to this guide to know how to install/use it if you're not familiar with it.

First of all, clone the repository

git clone https://github.com/fbessho/PyPoi.git
cd PyPoi

Then create a new virtualenv and install required packages.

mkvirtualenv pypoi

Install required packages

pip install -r requirements.txt

If you get error in pyamg installation, please install numpy first by the following command, and try the install command above again.

pip install $(grep numpy requirements.txt)
# or
# pip install numpy==1.8.1
# or
# pip install numpy

Alright, now you're ready to start. Try the following command. An old-fashioned tkinter GUI should appear in front of you 🍺.

python gui.py

What is Poisson Image Editing?

Poisson Image Editing is a technique to blend two images seamlessly.

This method is firstly introduced by Patrick Pérez and others in ACM SIGGRAPH 2003. The original theses is available here (pdf).


There are many resources about Poisson Image Editing and I'll leave explanations to them.

Implementation in other languages

There have already been several implementation in other language.

Found issues?

Please raise an issue from github issue page.

What's next?

I know there are a lot of space to improve. Main enhancements are listed in the issue tracker, for example,

It's more than welcome if you can pick up one/some of them.


The core function is from parosky/poissonblending/