Skip to content

Repository files navigation

Pointer Booth logo by David Busnel

by David Busnel and Paolo Lanaro

A Photo booth style application made in C++. It is capable of displaying multiple filters through a live camera feed, and allows the user to choose through a set of these filters in different orders.

It contains compatibility of STBI image array formats to OpenCV matrix image formats. This allows effects like Pointillism functionality, implemented in STBI, to be implemented in OpenCV video.

The user can save different combinations of filters through the JSON file serialization of filter containers.

Dependencies

This program requires OpenCV, JSON for Modern C++, and the STBI image library to function.

  • OpenCV for its camera capture and video capabilities.
  • JSON for Modern C++ to read and write filter configurations.
  • STBI library for image (and more specifically pixel) manipulation.

Build

  • Ensure all required libraries are installed.

Usage

COMMAND LINE MODE

  • If you would like to open a configuration, provide -o or --open as an argument.
    • This can be anywhere in your arguments list, though additional arguments would be redundant.
    • You will be prompted in the terminal for additional information.
      • Have the directory to your .json file prepared!
  • If you would like to save a configuration, provide -s or --s as an argument
    • This can be anywhere in your arguments list.
    • You will be prompted in the terminal for additional information.
      • Have your filename and location prepared!
  • Provide a list of your filters you would like applied in order. The available filters are as follows:
    • contour - Contour effect (To contour you must first Otsu threshold on a greyscale image)
    • pointillism - Pointillism effect
    • gaussianblur - Gaussian Blur effect
    • glitch - Glitch effect [beware of flashing lights]
    • otsu - Otsu Thresholding effect
    • pixelsort - Vertically sort pixels lexicographically descending
    • greyscale - Convert image to greyscale
  • Run the program! The camera feed will open automatically and your filters will be applied.
    • Exit the camera feed with the Esc key on your keyboard.
    • Saved configurations will not appear until camera is closed.

Examples

Live Feed

Command line arg: N/A

LiveFeed

Live Pointillism

Command line arg: pointillism

LivePointillism

Live PixelSort Pointillism combination

Command line arg: pixelsort pointillism

PixelSortPointillism

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages