GithubHelp home page GithubHelp logo

silky / python-image-morpher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ddowd97/python-image-morpher

0.0 1.0 0.0 124.64 MB

Python Image Morpher (PIM) is a program that blends images to your content!

License: MIT License

Python 100.00%

python-image-morpher's Introduction


Python Image Morpher (PIM) is a program that can take two images and blend them to whatever extent or precision that you like! It is designed to emulate some of Python's OpenCV image processing from scratch without reference.


This project began in Spring 2019 (detailed in readme_general.pdf, readme_phase_1.pdf, and readme_phase_2.pdf), requiring the usage of delaunay triangulation, projective/affine transformation, application of projections through matrices, masking, and alpha blending - all of which are still maintained - in order to accomplish image morphing. Thus, this repository is more of a 'proof of concept' than it is the most efficient way of accomplishing the given task of image morphing.

So far, this program has only been tested on separate Windows environments; if it does not already, later releases are likely to support Mac and Linux.


Installation:

This program has dependencies that do not come packaged with Python 3. To install the required modules, enter the following command using the terminal supplied by Windows or your choice of IDE (such as PyCharm):

pip install -r requirements.txt

Alternatively, for each module below that your machine does not have installed, enter the respective command(s):

PyQt5 - pip install pyqt5

SciPy - pip install scipy

NumPy - pip install numpy

Imageio - pip install imageio

Matplotlib - pip install matplotlib

If pip, for whatever reason, is not installed on your machine, enter the following line in a terminal:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Then navigate to the folder where get-pip.py was downloaded and enter the following line in a terminal:

python get-pip.py

Usage:

  • Run MorphingApp.py either through the terminal or using an IDE
  • Use the graphical interface to select the two images you want to morph together
  • Alternate clicking on related points of interest in your images to create correspondences
  • When satisfied, click the blend button to observe the result!

A more detailed Help guide is included within PIM's GUI, if needed.


Proof of Concept - Perspective Shifting

Development 'To-Do' List:

  • Change: Improved Drawing Performance
    • There is currently a small delay with point placement when working with larger images.
  • Feature: Automatic Correspondence Determination
    • The user may click a button to have PIM automatically generate points by scanning for similar features between images

If you encounter an error, a bug, or if you simply wish to request a change/feature, please file an issue using the tracker that GitHub provides, here.

If you like what you see, feel free to contact me on LinkedIn.

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.