Skip to content

About

C++ image processing engine for raw pixel matrix manipulation, linear blending morphing, and temporal sequence reversal.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

Video Frame Morphing & Sequence Reversal Engine

Overview

A low-level C++ image processing engine capable of manipulating raw pixel matrices to compute smooth transitions (morphing) between distinct static images and dynamically reordering image-based video sequences.

Rather than relying on high-level multimedia libraries, this engine performs direct memory manipulation and per-pixel linear algebra calculations on uncompressed image buffers (e.g., PGM format), demonstrating performance-oriented data structure management and file I/O operations.

System Architecture & Features

  • Linear Blending Morph Engine: Computes intermediate states between a source matrix and a target matrix. It applies a mathematical interpolation algorithm per pixel to generate a user-defined number of transitional frames, creating a fluid morphing effect.
  • Temporal Sequence Reversal: Restructures and inverts the temporal order of large directory-based image sequences (frames) to reconstruct a reversed video stream without memory saturation.
  • Raw Buffer Manipulation: Bypasses standard encoding APIs to directly parse, process, and write raw PGM/PPM file headers and pixel data matrices.
  • Batch Processing I/O: Efficiently traverses file systems to handle batch reading and writing of hundreds of sequential frames.

Technical Stack

  • Language: C++11
  • Core Concepts: Digital Image Processing, Linear Interpolation, Matrix Operations, Memory Management, File System I/O.

Build and Execution

Compilation

You can compile the separate modules directly using g++:

g++ -std=c++11 -O2 src/morphing.cpp -o morph
g++ -std=c++11 -O2 src/rebobinar.cpp -o reverse

Usage: Morphing Module

Generates a sequence of transitional frames between two images.

# Syntax: ./morph <source_img> <target_img> <output_folder> <num_frames>
./morph data/imagenes/Azucena.pgm data/imagenes/Pedro.pgm data/videos/morph_az_pe 30

Usage: Reverse Module

Inverts an entire sequence of frames to play backwards.

# Syntax: ./reverse <input_folder> <output_folder>
./reverse data/videos/missa data/videos/reb_misssa

License

Distributed under the MIT License.

About

C++ image processing engine for raw pixel matrix manipulation, linear blending morphing, and temporal sequence reversal.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages