Skip to content

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

License

ruanjiyang/Python-Image-Morpher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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 with this project - 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.8. For each module below that your machine does not have installed, enter the respective command using the terminal supplied by Windows or your choice of IDE (such as PyCharm).

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 your two images to morph
  • Click on points of interest in your images to create correspondences
  • When satisfied, click on blend and observe the result!

Development 'To-Do' List:

  • ✔️ Color Picker Widget (User may specify color used for triangles)
  • Redo / CTRL + Y (User may redo an action that was previously undone or deleted)
  • ✔️ Full Blend (User may toggle a flag that tells the program to render each specified alpha increment blend and the alpha slider instead displays each frame)
  • Improved Performance (Currently, interpolation is the biggest bottleneck, second to the required matrix math)

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages