Skip to content

avojak/image-morphing

Repository files navigation

image-morphing

Build Status

Implementation of image morphing with a web front-end. Images are uploaded, and the user selects corresponding points in the images.

Demo video: https://www.youtube.com/watch?v=S3hfBqrwQms

Input Home Page

Results Page

This was created for the CS 445 Spring 2020 Final Project at the University of Illinois at Urbana-Champaign. There are plenty of things that could be better but it works, and again this was for a school project!

Building

Install the following pre-requisite software:

  • Python 3
  • Docker (only if building the Docker image)
  • ImageMagick (only if running the test server locally)

Building the Python Packages

To build only the Python packages:

$ pip install -r requirements.txt
$ make lib web

Building the Docker Image (Recommended)

To build the Docker image:

$ make image

To build everything:

$ make all

Note that building all only makes sense if you intend to consume the Python packages directly. Otherwise simply building the Docker image will produce a portable distribution.

Running

Test Server

To run locally for testing:

$ export FLASK_APP=webmorphing; flask run

The UI will be available at http://localhost:5000.

Docker Image

A Docker image is also produced and can be run with the following command:

$ docker run -it -p 8080:8080 avojak/image-morphing:{version}

The UI will be available at http://localhost:8080.

Example Results

Sample Morph

Sample Morph

Technologies Used

Attribution