Skip to content

Repository files navigation

Fancy Things - Image Processing Tool

black_hole black_hole_soble

Fancy Things is my personal pet project exploring modern C++ and real-time image processing. Developed as a learning experiment, it combines computer graphics fundamentals with hands-on system design.

Project Origins

This application began as a project to:

  • Understand low-level image manipulation
  • Implement filter algorithms
  • Improve my CMake and C++ skills

While not enterprise-grade, it serves as a demonstration of core concepts I interested in.

Features

  • Real-time Filter Previews: See changes instantly
  • Multiple Filters:
    • Blurs (Box, Gaussian, Motion)
    • Edge Detection (Sobel, Laplacian)
    • Special Effects (Embossing)
  • Image Saving: Save processed images at any time

Requirements

  • Compiler: GCC 11+ or Clang 14+
  • CMake: 3.21+
  • SFML: 2.6+
  • spdlog: 1.15+

Installation

# Clone repository
git clone https://github.com/fogInSingularity/fancy_things
cd fancy_things

# Build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel `nproc`

Usage

./build/fancy_things image.png

Hotkeys:

  • Q: Quit application
  • A: Apply selected filter
  • S: Save processed image

Supported filters

Filter Description
Box blur Simple "average" blur
Gaussian blur Soft blur using normal distribution
Motion blur Directional blur
Sobel/Laplacian edge detection Edge detection
Embossing 3D relief effect

Project progress

Development timeline

About

fancy_things is image-processing utility currently under development

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages