This software has the intent to make glitch effects on an image from your command line. This is the product of school project for implementing multiparallel support to an algorithm using OpenMP software.
- C++ >= 11
- CMake >= 3.5.1
- OpenMP (optional)
Clone this repository and navigate under glitch/
git clone && cd glitch
Under glitch/
follow the next steps in order to make fresh build, and generate a binary file called Glitch.
-
Remove all content inside
build/
folder using the next command.rm -rf build/*
-
Navigate under
build/
folder. Then build with cmake which is going to generate plenty of other files. Finally run the make command to invoke the generated Makefile (one of the files generated by cmake).cd build/ && cmake ../ && make
-
(Optional for linux or WSL users). After generating
./Glitch
file, you can move or copy it under/usr/local/bin/
to use it everywhere on your machine. Underglitch/build
run:sudo cp Glitch /usr/local/bin/
-
(Optional for linux or WSL users). Test the installation:
Glitch --help
Once the binary file called Glitch has been generated you are ready to go. To see more details about how to use this software you can type on your command line: ./Glitch --help
Which is going to display the following message:
Options:
-i, --input <path>: Set relative path to the input image
-o, --output <path>: Set relative path to save the output image. (default = './output.png')
-f, --filters: Set filter(s) to be applied sequentally separeted by comma (e.g. psv,sv,psv,...). (default = psh)
psv: pixel sort vertical
psh: pixel sort horizontal
sv: swap vertical
sh: swap horiztonal
s: sort pixels
-c, --criteria <int>: Set criteria integer for [psv, psh] filters. Recommended value between 0 - 255. (default = 35)
-p, --parallel: A flag to enable parallel computing. (default disabled; default threads = 4)
-t, --threads <int>: Set number of threads. (default = 4)
-v, --verbose: A flag to enable verbose mode. (default disabled)
-h, --help: Display this message
Here is a list of the filters you could apply with a brief description, and also a sample url-image:
Filter | Name | Description | Sample URL-image |
---|---|---|---|
psv | pixel sort vertical | sorts each column base on -c, --criteria variable and the pixel's intensity | ctrl+click |
psh | pixel sort horizontal | sorts each row base on -c, --criteria variable and the pixel's intensity | ctrl+click |
sv | swap vertical | swaps the position of two random pixels of random columns of an image | ctrl+click |
sh | swap horizontal | swaps the position of two random pixels of random rows of an image | ctrl+click |
s | sort pixels | sorts pixels incrementally base on the pixel's intensity | ctrl+click |
This project is under the MIT license.