Skip to content

a convolution engine offering GUI and animations with flexiable and scalable design which allows easy creation of new layers and convolutions

Notifications You must be signed in to change notification settings

EbrahimMo50/Convolution_Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convolution_Engine

A Java project for visual convolution with animation, transformations and multiple rendaring manners.

Features

  • Image Transformations:
    Apply various convolution filters such as Gaussian blur, sharpening, and edge detection (horizontal/vertical).

  • Rendering Strategies:
    Render processed images using different strategies, including normal and polarity-based rendering.

  • Animation Support:
    Animate transitions between images with customizable animation strategies (e.g., horizontal/vertical slide, acid trip 🫠).

  • Extensible Architecture:
    Easily add new transformation or rendering strategies via interfaces.

Project Structure

  • Architecture:

    • The app was built with delicate care and careful selection for design patterns like singleton, strategy and builder.

    • A portion of the app is made with functional programming manner which is the animation part using lambda expressions as arguments to the engine.

    • Utilizing java reflection the loading of the methods and strats occur dynamically in runtime scanning all the methods and classes.

  • Class diagram:
    image

Glimpse Of The App

  • GUI:

image

  • Animation:

image

Adding your convolution

  • Create your transforamtion strategy class in the src\Strategies\TransformationStrats\ConcerateStrats directory inherit the Slider abstract class and implement ITransformationStrat interface, define ur kernal and choose suitable rendar strategy or make your own with the same way in transform() method.

About

a convolution engine offering GUI and animations with flexiable and scalable design which allows easy creation of new layers and convolutions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages