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.
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.
- Ensure all required libraries are installed.
- 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 effectgaussianblur- Gaussian Blur effectglitch- Glitch effect [beware of flashing lights]otsu- Otsu Thresholding effectpixelsort- Vertically sort pixels lexicographically descendinggreyscale- 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
Esckey on your keyboard. - Saved configurations will not appear until camera is closed.
- Exit the camera feed with the
Command line arg: N/A
Command line arg: pointillism
Command line arg: pixelsort pointillism